何时在WPF中引发CollectionViewSource.Filter事件?

时间:2014-12-08 07:51:26

标签: c# wpf mvvm

我有使用CollectionViewSource的经验,可以使用MVVM模式实现排序,分组和过滤。但是我很好奇是什么时候引发了CollectionViewSource.Filter事件。我通常的方式就像MSDN,但这只是注册事件,不像Button.Click我没有看到任何提升此事件的地方,例如通过键盘或鼠标。 那么有人可以解释一下吗?谢谢!

1 个答案:

答案 0 :(得分:4)

  1. 只要集合发生变化,就会调用它。
  2. 如果您的过滤器条件在您的视图模型代码中调用ICollectionView.Refresh,则可以手动重新评估过滤器:

    collectionViewSource.View.Refresh();
    
  3. 您可以在进行批量修改时阻止重复调用过滤器:

    using (collectionViewSource.DeferRefresh())
    {
        // update your collection in here
    }