什么是更好的性能明智:可见性转换器 VS 改变整个来源
What is better performance wise: Visibility converter VS changing the entire source
在 WPF 应用程序中,如果我有一个显示在 grid/list 视图中的可观察集合。并且用户可以请求通过一组预定义的规则来过滤可见的内容。什么是更好的性能明智:
- 为每个项目添加绑定到其可见性的转换器
- 或者将整个源更改为过滤后的集合。
我不希望转换器执行任何逻辑 - 在我已经在视图模型中完成过滤器之后,这可能是一个简单的检查。
我没有任何代码,因为我想了解什么更好,然后实现它。
我认为最好的方法是使用 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
}
集合视图来源:https://msdn.microsoft.com/fr-fr/library/system.windows.data.collectionviewsource(v=vs.110).aspx
你可以在那里找到一个例子:
在 WPF 应用程序中,如果我有一个显示在 grid/list 视图中的可观察集合。并且用户可以请求通过一组预定义的规则来过滤可见的内容。什么是更好的性能明智:
- 为每个项目添加绑定到其可见性的转换器
- 或者将整个源更改为过滤后的集合。
我不希望转换器执行任何逻辑 - 在我已经在视图模型中完成过滤器之后,这可能是一个简单的检查。 我没有任何代码,因为我想了解什么更好,然后实现它。
我认为最好的方法是使用 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
}
集合视图来源:https://msdn.microsoft.com/fr-fr/library/system.windows.data.collectionviewsource(v=vs.110).aspx
你可以在那里找到一个例子: