什么是更好的性能:可见性转换器VS更改整个源

时间:2016-09-21 09:07:36

标签: c# wpf ivalueconverter

在WPF应用程序中,如果我在网格/列表视图中显示可观察的集合。并且用户可以请求过滤预定义规则集可见的内容。什么会更好的表现明智:

  1. 对于每个项目,使用转换器为其可见性添加绑定
  2. 或将整个来源更改为过滤后的收藏。
  3. 我不希望转换器执行任何逻辑 - 在我已经在视图模型中完成过滤器之后,它可能是一个简单的检查。 我没有任何代码,因为我想了解什么是更好的,然后实现它。

1 个答案:

答案 0 :(得分:4)

我认为,实现目标的最佳方式是使用CollectionViewSource。

var view = new CollectionViewSource();
view.Filter += Filter;
view.Source = source;

void Filter(object sender, FilterEventArgs e)
{
    if (e.Item != null)
        e.Accepted = false; //condition here        
}

CollectionViewSource:https://msdn.microsoft.com/fr-fr/library/system.windows.data.collectionviewsource(v=vs.110).aspx

你可以在那里找到一个例子:

https://stackoverflow.com/a/9618387/5703316