我试图将多个选择从DataGrid绑定到ViewModel,但是努力寻找一种允许双向绑定的解决方案,因为我认为DataGrid的SelectedItems属性是只读的。
现在,我正在使用Prism的帮助器,它允许从View到ViewModel的一种方式绑定。
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<prism:InvokeCommandAction
Command="{Binding SelectionChangedCommand}"
CommandParameter="{Binding SelectedItems,
ElementName=PatchDataGrid}" />
</i:EventTrigger>
</i:Interaction.Triggers>
这适用于1种方式的数据绑定,但是我的应用程序允许用户使用始终运行的服务(通过CLI)进行选择。已经有实现逻辑可以使用CLI将项目添加到SelectedItems ObservableCollection,但是(如当前方法所预期的那样),这些更改不会反映在UI中。我现在看不到一种方法,可以使用任何方法在保留MVVM的同时将这些更改返回到UI。
我已经考虑过在模型中添加“ IsSelected”属性,但这将不起作用,因为选择应该针对每个视图而不是全局属性。
我正在从以前走过这条路的人那里寻求建议,并找到了一种符合MVVM并带有两种方式数据绑定的解决方案。
提前谢谢!