在WPF和MVVM模式中,我有一个TextBox
和一个ListBox
。 ListBox
使用DataTemplate
绑定到项目集合。此集合的默认计数约为50左右。
我想要实现的是类似过滤器的动作。如果可能,我不想更改列表视图或类似内容,只需滚动到与 TextBox
对应的项目即可匹配,最好不要选择它。
我已经看到了一些使用CollectionView
和Filter
的示例和解决方案(无法通过btw工作),还有一些使用自动滚动到列表的末尾或者添加一个新项目,但没有一个特定于我的案例。
我的Listbox
结构如下:
<ListBox IsTextSearchEnabled="True" HorizontalAlignment="Stretch" Margin="6,49,0,0" Name="lbObjectA" VerticalAlignment="Stretch" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type src:Dto}">
<StackPanel Height="20" Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" Margin="0,3,0,0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>