Wpf selectionChanged执行了两次,为什么?

Wpf selectionChanged执行了两次,为什么?,wpf,mvvm,mvvm-light,Wpf,Mvvm,Mvvm Light,我有一个使用MVVM模式的WPF应用程序。我有一个dataGrid,我还使用MVVM Light将事件转换为commad事件selectionChanged,并传递参数SelectionChangedEventArgs 我已经将选择模式设置为extended,因为我想在数据网格中选择许多行 当我只选择一行时,它可以正常工作,但是如果我使用ctrl-pr-shift选择多行,那么事件将执行两次,第一次执行的是我选择的行,因此参数的属性AddedItems选择了项,removedItems为空。然而

我有一个使用MVVM模式的WPF应用程序。我有一个dataGrid,我还使用MVVM Light将事件转换为commad事件selectionChanged,并传递参数SelectionChangedEventArgs

我已经将选择模式设置为extended,因为我想在数据网格中选择许多行

当我只选择一行时,它可以正常工作,但是如果我使用ctrl-pr-shift选择多行,那么事件将执行两次,第一次执行的是我选择的行,因此参数的属性AddedItems选择了项,removedItems为空。然而,在第二次执行中,addedItems是空的,removedItems有个items

为什么我选择项目,而不是取消选择

之后,在我的数据网格中,我可以看到我选择了正确的项,但在存储selectedItems的视图模型的属性中,我的属性为空,因此状态不一致

commad的事件是单向模式


谢谢。

您是否尝试查看事件选择更改引发了多少次?试试基本的例子,直接订阅事件(通过xaml或codebehind),并检查一下。如果计数为1,那么您可能在mvvm light中发现了一个bug。我创建了一个新的应用程序,它可以按预期工作。因此,我的应用程序中有一些代码,可以执行两次事件。我必须找到它。