我有一个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
中没有显示数据。