【发布时间】:2020-06-24 15:06:26
【问题描述】:
我的文本框将过滤后的字符串提供给集合,当我在文本框中输入新值时,我希望根据新的过滤器值刷新我的集合。 我不想将过滤逻辑放在我的视图模型或代码中,而只放在 XAML 中。 代码附在下面。排序和分组工作正常。我已经检查了这个答案:https://stackoverflow.com/a/6462282/5130106,它几乎可以做到这一点,但在刷新集合时缺乏,因此,我正在创建一个新问题,因为我找不到答案。
有什么方法可以实现吗?
<TreeView x:Name="SystemsTreeView" ItemsSource="{Binding Source={StaticResource SystemCollection}, Path=Groups}">
<CollectionViewSource x:Key="SystemCollection" Source="{Binding SystemsList}" Filter="{MyLogic}">
<!--Sorting of Systems-->
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="SystemName"/>
<scm:SortDescription PropertyName="Version" Direction="Descending"/>
</CollectionViewSource.SortDescriptions>
<!--Grouping of Systems-->
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="SystemName" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
【问题讨论】:
-
SystemsList 是什么类型的?你为什么使用
Source={StaticResource SystemCollection}? -
SystemsList 是一个 observableCollection,我正在使用 staticResource 来使用 collectionviewsource 进行排序、分组和希望过滤,如果它有效的话:)
标签: wpf mvvm collectionviewsource