绑定到struct

时间:2013-07-26 22:33:34

标签: c# wpf datagrid

我画了一条点线。我想让用户编辑这些点。为此,我将ObservableCollection<Point>绑定到DataGrid(X,Y列)(实际上是DataPoint因为我正在使用库,但它仍然是Struct )。

问题在于,因为我绑定了一个struct而struct并不意味着要改变我正在修改我的集合的副本而不是集合本身。我想切换到普通的类,X,Y属性暴露但我不能。 我怎么能绑定到struct的集合并修改该集合? 感谢。

如果不可能,我如何定位DataGrid的VIEW值,以便运行循环来填充新的List,然后用我的新List中的项替换我的第一个ObservableCollection。

myDataGrid.Items不是我想要的,因为它代表原始数据,而不是我DataGrid单元格中的真实数据。

1 个答案:

答案 0 :(得分:2)

结构是值类型。所以基本上如果你访问它们就会得到一份副本。

这意味着对于点,您只能通过调用构造函数来覆盖它们并分配新值:

yourPoint = new Point(xNew, yNew);

对于DataBinding,您始终必须使用Property。你可以为它定义一个包装结构的类。

我希望这已经有所帮助。另外,您还可以查看此struct tutorial