2014-12-08 69 views
0

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

+1

每当'Source'改变时它会被提升。 – 2014-12-08 08:14:06

+0

@HamletHakobyan,谢谢! – 2014-12-09 01:21:29

回答

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

    collectionViewSource.View.Refresh(); 
    
  3. 可以防止重复调用过滤器时,你在做批量修改:

    using (collectionViewSource.DeferRefresh()) 
    { 
        // update your collection in here 
    } 
    
相关问题