gpt4 book ai didi

wpf - 如何使用过滤器集自动刷新 ListCollectionView

转载 作者:行者123 更新时间:2023-12-05 01:02:59 31 4
gpt4 key购买 nike

我有一个 ObservableCollection 和一个 ListCollectionView 并带有一个 Filter 谓词集。当我更改全局条件时,比如说搜索文本,我可以在 View 上调用 .Refresh() 来强制刷新。但是当集合中的一个项目改变一个属性时,是否可以只刷新那个元素的可见性?假设通过声明过滤器依赖于一个属性?

最佳答案

简短的回答是肯定的。

ListCollectionView 有两个感兴趣的属性

IsLiveFiltering 是一个 bool 值,用于获取或设置一个指示是否启用实时过滤数据的值。

LiveFilteringProperties 是一个字符串列表,其中包含指定参与实时过滤数据的属性的属性名称。

设置这两个属性会得到你想要的结果。

这是一段代码,展示了如何在已部署的应用程序中设置过滤属性...

        if (_itemWrappersListCollectionView != null && _feedInfosListCollectionView!=null)
{
_itemWrappersListCollectionView.IsLiveFiltering = true;
_itemWrappersListCollectionView.IsLiveSorting = true;
_itemWrappersListCollectionView.LiveFilteringProperties.Add("FilterStatus");
InitialiseExceptions();
InitialiseSorts();
InitialiseAgeFilter();
InitialiseFeedCruds();
_itemWrappersListCollectionView.Filter = ItemFilterDelegate;
}

在这个例子中,当所谓的 FilterStatus 属性在集合项上发生变化时,过滤谓词将立即在 ITEM 上调用,而无需耗时的“刷新”方法。

另见 IsLiveFilteringRequested

关于wpf - 如何使用过滤器集自动刷新 ListCollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23462766/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com