我奮力的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完成:) –