目前我有一个ObservableCollection<Car> CarList
,一个WrapPanel
和一个ToggleButton
。 WrapPanel
包含一些CarInfo
用户控件,每个CarInfo
引用Car
中的CarList
。
基本上,当新Car
添加到CarList
时,应将新的CarInfo
控件添加到WrapPanel
。单击ToggleButton
后,WrapPanel
应仅显示CarInfo
中的Car.Speed > 70
。
我现在订阅CarList.CollectionChanged
来更新WrapPanel
,并使用ICollectionView
进行过滤。
我的问题是:如何在ToggleButton
点击上触发过滤?
我是WPF的新手,因此非常感谢一些示例代码!非常感谢你!
答案 0 :(得分:0)
您应该将WrapPanel的ItemsSource绑定到汽车收藏,而不是手动更新。
要切换过滤器,请将此事件处理程序添加到切换按钮:
private void toggleFilter_Checked(object sender, RoutedEventArgs e)
{
ICollectionView view = CollectionViewSource.GetDefaultView(CarList);
if (toggleFilter.IsChecked == true)
view.Filter = car => ((Car)car).Speed > 70;
else
view.Filter = null;
}