我奋力的WPF问题可以概括如下:两个listView绑定一个数据源,两个过滤器 - 第二个覆盖第一个......为什么?
有两个列表视图
<ListView x:Name="listView1"></ListView> <ListView x:Name="listView2"></ListView>
在代码隐藏他们的过滤器中创建:
var listViewCollection1 = (ListCollectionView)CollectionViewSource.GetDefaultView(Items); listViewCollection1.Filter = item => (item as string).Length == 5; listView1.ItemsSource = listViewCollection1; var listViewCollection2 = (ListCollectionView)CollectionViewSource.GetDefaultView(Items); listViewCollection2.Filter = item => (item as string).Length == 3; listView2.ItemsSource = listViewCollection2; public ObservableCollection<string> items = new ObservableCollection<string>() { "John", "Jan", "Lanny", "Carol", "Hug", }; public ObservableCollection<string> Items { get { return items; } private set { items = value; } }
第二个过滤器覆盖第一个过滤器,并且以下项目显示在两个listView中:
- 月
- 拥抱
谁能告诉我,什么是错的?我如何正确地实例化两个绑定到一个数据源的listViews,有两个不同的过滤器?
我将不胜感激任何帮助。
鲁迪嗨, 感谢快速回复。 有没有办法在ListView的视图级别上提供过滤? 只需要有几个listView作为透视数据,绑定到一个数据源 这可以通过CollectionViewSource方法处理吗? 非常感谢,Ondra –
请看我更新的答案,你可以简单地实例化一个新的'CollectionViewSource',将'Source'设置为集合:) –
@OndraDvorak感谢您的编辑。欢迎来到StackOverflow并在你的Q上+1完成:) –