【发布时间】:2016-02-12 09:46:54
【问题描述】:
好吧,我正在使用 MVVM Light,并且我已经尝试了在事件 selectionChanged 中将数据网格的 selectedItems 作为参数传递的解决方案。所以我可以获取选定的项目,我可以在视图模型中更新我的变量。
首先,这是一个很好的解决方案。问题是,如果我在视图模型中将 SelectedIndex 属性设置为 -1 以取消全选或将 SelectedItem 属性设置为空,则不会触发事件 selectionChanged。我想这真的很好,因为为什么视图会通知视图模型在视图模型中第一时间更改的属性的更改?这不会创建循环,但是我需要手动清除我的视图模型中的 SelectedItems 属性,并通知我的事件 OnSelectionChanged 并将我的事件上升到另一个视图模型在我的代码的许多部分发生更改。
我想知道当我更改视图模型中的属性时如何强制触发 selectionChagend 事件。也许解决方案可以是附加属性,而不是使用事件 selectionChanged。
我有哪些选择?
谢谢。
【问题讨论】:
-
尝试两种绑定方式即
SelectedItem="{Binding SelectedRow, Mode=TwoWay}"
标签: c# wpf data-binding wpfdatagrid