我有一個ListView
與分組。我想根據TextBox
中輸入的文字顯示ListView
中的項目。有很多關於過濾ListView
和CollectionViewSource
的教程,但它們是WPF
而不是UWP
。我在做什麼:UWP - 與分組過濾ListView
我ListView
:
<ListView x:Name="ContactsListView"
ItemTemplate="{StaticResource ContactsTemplate}"
ItemsSource="{x:Bind ContactsViewSource.View}"
SelectionMode="Single"
ShowsScrollingPlaceholders="True" >
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate x:DataType="data:GroupingItem">
<TextBlock Text="{x:Bind Key}"
Foreground="Blue"
Style="{ThemeResource TitleTextBlockStyle}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
</ListView>
我CollectionViewSource
在Page.Resources
定義:
<CollectionViewSource x:Name="ContactsViewSource"
x:Key="src"
IsSourceGrouped="True" />
我創建了一個textChanged
事件處理程序TextBox
:
private void SearchBox_TextChanged(object sender, TextChangedEventArgs e) {
....
//here I filter ListView items and add them to CollectionViewSource
ContactsViewSource.Source = filteredValues;
}
但是沒有改變。 ListView不刷新。我不知道該怎麼辦。對於UWP
,我無法找到解決此問題的任何解決方案。
當在MainPage
constructor
中分配數據時,它正在顯示數據。當我沒有在constructor
中分配數據,而是在SearchBox_TextChanged
中時,ListView
中沒有顯示數據。