小编Anw*_*war的帖子

在Ubuntu上编译和链接GTK 3和C项目

我相信这不是一个重复的问题,在发布此问题之前,我已经看到了所有问题/答案.我想我在这里有不同的情况.

我使用Ubuntu 12.04并下载了GTK 2和3.我从GNOME的网站上复制了一个简单的GTK源代码.但是当我在终端中使用此命令时:

gcc `pkg-config --cflags --libs gtk+-3.0`  hello.c -o hello
Run Code Online (Sandbox Code Playgroud)

我明白了:

hello.c:(.text+0x17): undefined reference to `gtk_init'
hello.c:(.text+0x23): undefined reference to `gtk_window_new'
hello.c:(.text+0x47): undefined reference to `gtk_main_quit'
hello.c:(.text+0x5b): undefined reference to `g_signal_connect_data'
hello.c:(.text+0x67): undefined reference to `gtk_widget_show'
hello.c:(.text+0x6c): undefined reference to `gtk_main'
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

#include <gtk/gtk.h>

int
main (int   argc,
char *argv[])
{
  GtkWidget *window;

  gtk_init (&argc, &argv);

  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

  g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

  gtk_widget_show (window);

  gtk_main ();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不确定是否出现错误,因为我有两个版本的GTK +或者是什么.我是Ubuntu/Linux应用程序开发的新手.

c gtk gcc

17
推荐指数
1
解决办法
2万
查看次数

编写CRM 2011插件的最佳设计模式

由于客户提供的复杂请求,有时我的代码会变得混乱.自上次我在插件上工作以来,我花时间阅读并理解我之前写过的内容.

我想知道是否有人实现了一个好的设计模式,节省了大量的时间,使代码更有组织和可读性等.

c# dynamics-crm-2011

8
推荐指数
1
解决办法
3668
查看次数

当另一个对象的属性发生更改时,通知一个对象

我有一个名为Page的父对象,它有一个名为Control的对象列表:

public class Page
{
   List<CustomControl> controls {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

CustomControl类具有以下定义:

public class CustomControl
{
 string Name {get;set;}
 string Value {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

比方说,Page类有两个CustomControls A和B.当Custom Control A的属性Value发生变化时,可以通知自定义控件B,以便它可以改变它的一些属性.

我正在考虑在CustomControl类上实现INotifyPropertyChanged事件,现在当同一个类的另一个实例具有其Modified的某个属性时,如何通知CustomControl的实例.

.net c# inotifypropertychanged

6
推荐指数
1
解决办法
9142
查看次数

定义新类或新视图模型类时,List&lt;&gt; 与 IEnumerable&lt;&gt;

我定义了一个新的 ViewModel 类,如下所示:-

public class myviewmodel
{
    public IEnumerable<Question> Questions { get; set; }
    public decimal Total { get; set; }
    public string Message { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

但我也可以将其定义为

public class myviewmodel
{
    public List<Question> Questions { get; set; }
    public decimal Total { get; set; }
    public string Message { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

如果我想创建一个新的模型类,也会发生这种情况;那么这两种方法有什么区别呢?BR

c# entity-framework asp.net-mvc-3

5
推荐指数
1
解决办法
2230
查看次数

通知/绑定父属性以计算Children属性的总和

我有两个类,一个用于ViewModel,另一个用于Product.Product类有一个名为Line Total的属性,ViewModel Class有一个名为Total Amount的属性.Product类绑定到DataGrid,用户插入随后自动更新行总计的数量.

这是ViewModel类:

public class ViewModel : INotifyPropertyChanged
{

    public ObservableCollection<Product> products { get; set; }// the children

    private decimal _TotalAmount; 
    public decimal TotalAmount // <=== has to hold sum of [products.LineTotal]
    {
        get
        {
            return totalAmount;
        }
        set
        {
            if (value != _TotalAmount)
            {
                _TotalAmount = value;
                onPropertyChanged(this, "TotalAmount");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是Product类,它是一个子类:

public class Product : INotifyPropertyChanged
    {
        private decimal _LineTotal;
        public …
Run Code Online (Sandbox Code Playgroud)

c# wpf

5
推荐指数
1
解决办法
3147
查看次数

使用string和int数据类型在C#中创建列表

如何创建包含字符串值和int值的列表?任何人都可以帮助我.是否可以创建具有不同数据类型的列表?

c#

4
推荐指数
2
解决办法
3万
查看次数

如何在多对多相交表上添加CRM插件步骤?

我在Opportunity和自定义实体之间创建了一个(多对多)关系.CRM自动打破与称为" 相交表 " 的内置表的关系.

在Plug-in Registeration Tool中,我想在此特定表上添加Create/Update/Delete消息.但问题是它并不存在 - 甚至那里也不存在多对多的系统关系.

人们可能会建议我手动破坏关系,以便在注册工具中显示.但是有没有解决方案来访问这个内置表?

dynamics-crm dynamics-crm-2011

4
推荐指数
1
解决办法
3858
查看次数

将花括号格式化为内联的有效方法

将花括号移动到同一行的最快方法是什么?

由此:

const value = { 
    input: 123 
}
Run Code Online (Sandbox Code Playgroud)

对此:

const value = { input: 123 }
Run Code Online (Sandbox Code Playgroud)

我这样做的方法是将 Visual 与 hjkl 结合使用。

奖励:我怎样才能实现编辑,但反过来呢?

vim

2
推荐指数
1
解决办法
46
查看次数

Sequence不包含匹配元素FirstOrDefault

public ActionResult Update(string id)
{
    Device record = new Device(); // OK
    record = record.Find(new Guid(id), service); // OK

    if (record.secondValue.HasValue) // <--- 
          record.secondSelectList.FirstOrDefault(i => i.Value == record.secondValue.ToString()).Selected = true;
    return View(record);
 }
Run Code Online (Sandbox Code Playgroud)

上面的代码找到一个给定ID的设备,然后设置DropDownList 如果 secondValue有一个值,如果没有则跳过.

代码工作正常,但在许多控制器中的许多操作中,我必须设置IF 条件来检查xxxValue是否确实具有值.

我不能直接这样做:

record.secondSelectList.FirstOrDefault(i => i.Value == record.secondValue.ToString()).Selected = true;
Run Code Online (Sandbox Code Playgroud)

因为在任何时候,FirstOrDefault都可能返回一个空引用,由于使用了.Selected属性,它将立即引发异常.

好的,我的问题是如何设置DropDownList而不需要使用If条件?

我想,而不是使用FirstOrDefault(),我将使用SetSelected().

record.secondSelectList.SetSelected(i => i.Value == record.secondValue.ToString());
Run Code Online (Sandbox Code Playgroud)

SetSelected()方法在哪里我将处理null结果.我怎样才能做到这一点?

c# linq

0
推荐指数
1
解决办法
4170
查看次数