WPF DataGrid(MultiSelector?)多次引发SelectedItems CollectionChanged事件。

9 浏览
0 Comments

WPF DataGrid(MultiSelector?)多次引发SelectedItems CollectionChanged事件。

我不确定这个问题是与DataGrid控件还是与MultiSelectors一般有关,但当我在网格中选择多行时,每一行都会触发CollectionChanged事件。如果我用鼠标“拖动”,这是有道理的,但如果我使用“Shift+单击”选择多行或者简单地点击左上方的“选择所有行”按钮,也会发生这种情况。

我在MultiSelector上看到了Begin/EndUpdateSelectedItems方法以及IsUpdatingSelectedItems属性。不幸的是,我对该集合/事件的使用者不知情。

有没有办法让DataGrid / SelectedItems集合只在更新完成时发送CollectionChanged通知?

非常感谢。

编辑:

我发现对于DataGrid,即使更改了大量选择,IsUpdatingSelectedItems属性也没有被设置。

编辑:

我发现DataGrid的SelectionChanged事件在完全更改后只会正确触发一次。这很不幸,因为这破坏了简单数据绑定的可能性,但如果您可以控制SelectedItems集合的使用者,这是一个潜在的解决方法。

0