Wpf 切换按钮时筛选可观察到的采集

Wpf 切换按钮时筛选可观察到的采集,wpf,observablecollection,Wpf,Observablecollection,目前,我有一个observedcollection CarList、一个WrapPanel和一个切换按钮。WrapPanel包含一些CarInfo用户控件,每个CarInfo都指向CarList中的汽车 基本上,当一辆新的汽车添加到CarList时,一个新的CarInfo控件应该添加到WrapPanel。单击切换按钮时,WrapPanel应仅显示CarInfo,其中Car.Speed>70 我现在订阅CarList.CollectionChanged以更新WrapPanel,并使用ICollec

目前,我有一个
observedcollection CarList
、一个
WrapPanel
和一个
切换按钮
WrapPanel
包含一些
CarInfo
用户控件,每个
CarInfo
都指向
CarList
中的
汽车

基本上,当一辆新的
汽车
添加到
CarList
时,一个新的
CarInfo
控件应该添加到
WrapPanel
。单击
切换按钮时,
WrapPanel
应仅显示
CarInfo
,其中
Car.Speed>70

我现在订阅
CarList.CollectionChanged
以更新
WrapPanel
,并使用
ICollectionView
进行过滤

我的问题是:如何触发
ToggleButton
click上的过滤


我是WPF的新手,所以非常感谢一些示例代码!多谢各位

您应该将WrapPanel的ItemsSource绑定到car集合,而不是手动更新它

要切换筛选器,请将此事件处理程序添加到切换按钮:

    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;
    }

这并不能直接解决我的问题,但给了我解决原始问题的有用见解。谢谢:D