【发布时间】:2010-04-22 18:31:21
【问题描述】:
我想根据CheckBox 的IsSelected 属性对ListBox 应用过滤器。
目前我有类似的东西。
XAML
<CheckBox Name="_filterCheckBox" Content="Filter list" Checked="ApplyFilterHandler"/>
<ListBox ItemsSource="{Binding SomeItems}" />
代码隐藏
public ObservableCollection<string> SomeItems { get; private set; }
private void ApplyFilterHandler(object sender, RoutedEventArgs e)
{
if (_filterCheckBox.IsChecked.Value)
CollectionViewSource.GetDefaultView(SomeItems).Filter += MyFilter;
else
CollectionViewSource.GetDefaultView(SomeItems).Filter -= MyFilter;
}
private bool MyFilter(object obj)
{
return ...
}
它有效,但这种解决方案感觉像是老式的方式(Windows 窗体)。
问题:
是否可以使用 XAML 中的 Bindings / 来实现这一点?
感谢您的宝贵时间。
【问题讨论】:
标签: wpf xaml binding filter collectionviewsource