【发布时间】:2014-04-16 08:18:26
【问题描述】:
我有两个列表框,都将项目源设置为 MyList。在 listbox1 中,我想根据一些谓词过滤条目。我通过以下代码实现
ICollectionView listview= CollectionViewSource.GetDefaultView(MyList);
listview.filter(predicate)
我的问题是我不希望将此过滤应用于 listbox2,但保留一个 itemsource 对我来说很重要。我怎样才能做到这一点。
<ListBox Name="listbox1" ItemsSource="{Binding MyList}"/>
<ListBox Name="listbox2" ItemsSource="{Binding MyList}"/>
我尝试将 VirtualizingStackpanel.IsVirtualizing 设置为 false ,但它不起作用。
【问题讨论】:
-
keep one itemsource是什么意思?你想通过这种方式达到什么目的? -
@HamletHakobyan 我有几个视图,它们显示相同的信息,但图形表示不同。因此这些视图的数据相同,但数据模板不同。我不想创建重复列表在我的视图模型和逻辑中让它们保持同步,这就是我想要保持相同 itemsource 的原因。
-
如果你想添加另一个过滤器,也许可以使用 Refresh()。
-
@michael 我想你误会了我,我不想过滤一个视图影响另一个视图。
标签: c# wpf mvvm listbox observablecollection