我是WPF的新手并且对这一点感到困惑。
DataGrid.items.add(“text”)在datagrid中添加一个空行。 每个人都建议将源绑定到INumerable集合。
但是DataGrid.items.add(object)
在winform中只是add(key, val)
。 WPF是否都是关于绑定的,没有任何简单的方法可以在没有datasource
的情况下将数据添加到网格中? WPF DataGrid的key, val
去了哪里
答案 0 :(得分:1)
您可以将任何项目添加到WPF DataGrid,如类,图像,文本等,这与winforms绑定不同,每个项目可以是不同的类型/类别,这就是object.
一旦它们绑定类型的原因必须在XAML定义中声明绑定对象的属性,以便datagrid可以显示绑定对象的某些属性。
答案 1 :(得分:1)
WPF方式比可怕的winforms方法更好更简单。
在winforms中,当你“把东西”放入用户界面时,
DataGrid.Rows.Add(myobject);
它变成object
因此你需要采用一堆可怕的施法技术:
var myobject = DataGrid.Row[x] as MyClass;
这很糟糕,适用于最终用户脸上的各种运行时错误。
更不用说你需要两次实际做同样的事情,一个是把东西“放”到UI中,然后再从UI中“获取”东西。
使用WPF,一切都很漂亮,DataBound和强类型,因为你没有在UI中“放东西”,相反,你把东西放入一个强类型.Net对象,如ObservableCollection<MyClass>
MyCollection.Add(myobject);
然后:
MyCollection[x] //this is already an instance of MyClass and does not need any casting.
并且你不会做两次相同的事情,因为DataBinding负责同步UI和Data对象。