C# 筛选ObserverableCollection以仅显示某些项

C# 筛选ObserverableCollection以仅显示某些项,c#,wpf,data-binding,observablecollection,icollectionview,C#,Wpf,Data Binding,Observablecollection,Icollectionview,我在这里看到了这个链接: 但我有问题,试图对它进行调整 <ListBox Name="PageList_ListBox" MouseDoubleClick="PageList_ListBox_OnMouseDoubleClick" Background="#FFC9C9C9" Margin="0,5,0,0" ItemsSource="{Binding PageCollection, ElementName=This}">

我在这里看到了这个链接:

但我有问题,试图对它进行调整

<ListBox Name="PageList_ListBox" MouseDoubleClick="PageList_ListBox_OnMouseDoubleClick"
                             Background="#FFC9C9C9" Margin="0,5,0,0" ItemsSource="{Binding PageCollection, ElementName=This}">
整个集合只是过滤(绑定到列表框的_PageCollection变为空白),而不是只过滤名称中包含“Leaders List”的项

关于如何修改此代码以使其生效,是否有任何帮助?

将代码更改为:

 private ObservableCollection<MLBPage> _PageCollection = new ObservableCollection<MLBPage>();            
 public ICollectionView _PageCollectionView { get; set; }
使用clear、add、remove更改您的页面集合

将列表框绑定到视图

<ListBox ItemsSource="{Binding _PageCollectionView}"/>

顺便说一句,你的原始绑定不起作用,因为_PageCollection不是一个公共属性Blindmeis编辑的作品。只是不想把它弄得太乱,以至于人们真的读了这篇文章=[hm,这很奇怪..所以我按照你的指示..它会过滤所有内容(列表框只是空的).my listbox在运行程序时显示为空。但是如果我注释掉“\u PageCollectionView.Filter=FilterLeadersList;”整个播放列表都出现了…所以我不确定…我只是反复检查以确保其中的模板名称没有领导者列表…叹气我只是不知道为什么它不起作用等等,我想我知道为什么…BRB给第一个帮了我这么多并删除了你的答案的人…重新发布,我会相信你。这是我的错。你的代码可能起作用了,我只是我需要比较templateType而不是templateName,所以我没有弄错
 private ObservableCollection<MLBPage> _PageCollection = new ObservableCollection<MLBPage>();            
 public ICollectionView _PageCollectionView { get; set; }
 //ctor
 _PageCollectionView = CollectionViewSource.GetDefaultView(_PageCollection);
 _PageCollectionView.Filter = FilterLeadersList,
<ListBox ItemsSource="{Binding _PageCollectionView}"/>
 _PageCollectionView.Refresh();