【发布时间】:2012-03-18 08:15:17
【问题描述】:
.Net 4 WPF DataGrid C# MMVM
当 DataGrid SelectionUnit 为整行时,wpf 数据绑定和 collectionview 负责通过视图的 currentitem 属性在视图模型中让我知道主动选择的项目是什么。这对于选择模式设置为全行的只读网格非常有用。
现在我有一个可编辑的网格。所以我设置了 SelectionUnit=Cell 以便更容易地发现其中一个单元格。现在突然之间,网格不再具有任何跟踪选择项的能力。设置为单元格模式时,我什至无法设置 SelectedItem。所以现在视图模型总是认为它在第一行。我可以在网格中处理 SelectedCellsChanged 以确定我在哪一行,我只是无法让 viewmodel 知道,因为网格的 SelectedItem 无法再设置!
我不明白为什么网格在单元格选择模式下仍然不能有 SelectedItem。
对我的网格进行硬编码以将 ItemSource 转换为我的 collectionview 以从 SelectedCellsChanged 事件调用 MoveCurrentTo,是否有任何其他 MVVM 真正的方法可以使视图的 CurrentItem 与网格保持同步?
要么这样,要么我更改网格样式以在我有可编辑网格时删除或减少行突出显示效果。
【问题讨论】:
-
如果你必须“硬编码”,创建一个接口
-
是的,这就是我现在所做的。
-
我只是查看了
DataGrid源,在Cell模式下,它们不与SelectedItem同步