.Net 4 WPF DataGrid C#MMVM
当DataGrid SelectionUnit为完整行时,wpf数据绑定和collectionview会通过视图的currentitem属性让我知道viewmodel中的主动选择项 . 这适用于只读网格,选择模式设置为fullrow .
现在我有一个可编辑的网格 . 因此,我设置了SelectionUnit = Cell,以便更容易找到一个单元格 . 现在,网格突然不再具有跟踪选择项目的能力 . 设置为单元格模式时,我甚至无法设置SelectedItem . 所以现在viewmodel总是认为它在第一行 . 我可以在网格中处理SelectedCellsChanged以找出我所在的行,我无法让视图模型知道,因为网格的SelectedItem无法再设置!
我不明白为什么在单元格选择模式下网格仍然没有SelectedItem .
没有硬编码到我的网格中以将ItemSource转换为我的集合视图以从SelectedCellsChanged事件调用MoveCurrentTo,是否有任何其他MVVM真正的方法来保持视图的CurrentItem与网格同步?
或者,或者当我有一个可编辑的网格时,我更改网格样式以删除或减少行高亮效果 .
2 回答
我正在寻找同样的问题,并找到了一个简单的解决方案
要访问
SelectionUnit
设置为Cell
的行,您必须执行以下操作:仅当您一次只能选择一个单元格(而不是在扩展模式下)时,它才有效 .
我也有类似的问题,所以这里是我使用的样式(从网络复制) . 因此,您从http://datagridthemesfromsl.codeplex.com/复制WhistlerBlue主题并进行以下修改 . 希望这可以帮助 .