我做了充分利用互聯網安排一些事件,這個事件被插入一個ListView
中的應用程序,這個名單組織內容在GroupDescription
這樣的:在UI上過濾ObservableCollection項目?
<CollectionViewSource Source="{Binding Matches}" x:Key="GroupedItems">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="MatchNation" />
<PropertyGroupDescription PropertyName="MatchLeague" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
現在,我有一個TextBox
,其中可使用搜索Matches
集合中的特定項目,我試圖實現的是使用用戶在TextBox
中提供的給定search
字符串過濾集合。
我現在所做的是使用linq
創建備份並刪除所有不適合用戶search
字符串的項目,但我注意到這個代碼太重,也太用於實現簡單的UI過濾器的很多代碼。
我想知道是否有可能創建像xaml後面的東西。所以基本上,我在xaml中綁定了一個屬性,該屬性獲取由TextBox
提供的搜索字符串,並且當值更改Matches
集合時,將通過搜索文本進行過濾,所有這些都通過xaml進行。
這可能嗎?
例
物品avaialble在Matches
:
- 你好
- 世界
在TextBox
=>你好用戶搜索:
在ListView
將只顯示Hello
。
如果我使用.GetDefaultView,我必須聲明ObservableCollection爲靜態,爲什麼? – AgainMe
您不需要將其設置爲靜態。它應該是這樣的: 'ObservableCollection _matches = new ObservableCollection (); var cvs = CollectoinViewSource.GetDefaultView(_matches); cvs.Filter = ...'GetDefaultView()方法是靜態的,但是你可以傳遞一個非靜態的參數給它。 –
rmc00
好吧,過濾器我需要通過像'FilterString'這樣的屬性,就像你是例子嗎? – AgainMe