绑定到结构
本文关键字:结构 绑定 | 更新日期: 2023-09-27 18:25:10
我用点画了一条线。我希望允许用户编辑这些点。为此,我将ObservableCollection<Point>
绑定到DataGrid
(X,Y列)(实际上是DataPoint
,因为我使用的是库,但它仍然是Struct
)。
问题是,由于我绑定到一个结构,而结构并不意味着要更改,所以我修改的是集合的副本,而不是集合本身。我想切换到一个公开了X,Y属性的普通类,但我做不到。如何绑定到结构的集合并修改该集合?谢谢
如果这不可能,我如何以DataGrid的VIEW值为目标,以便运行一个循环来填充一个新的List,然后用该新List中的项目替换我的第一个ObservableCollection。
myDataGrid.Items
不是我想要的,因为它代表的是原始数据,而不是DataGrid
单元格中的真实数据。
结构是值类型。所以基本上,如果你访问它们,你就会得到一份副本。
这意味着对于点,您只能通过调用构造函数并分配新值来覆盖它们:
yourPoint = new Point(xNew, yNew);
对于DataBinding,您必须始终使用Property。您可以为此定义一个类,该类正在包装您的结构。
我希望这已经有所帮助。否则,您也可以查看此结构教程。