2014-11-17 31 views
0

目前我有一個ObservableCollection<Car> CarListWrapPanelToggleButtonWrapPanel包含一些CarInfo用戶控件,每個CarInfoCarList中的Car按鈕切換時過濾ObservableCollection

基本上,當一個新的Car加到CarList,一個新的控制CarInfo應該被添加到WrapPanel。點擊ToggleButton時,WrapPanel應只顯示CarInfo其中Car.Speed > 70

我現在訂閱CarList.CollectionChanged更新WrapPanel,並使用ICollectionView進行過濾。

我的問題是:如何觸發ToggleButton點擊過濾?

我對WPF非常陌生,所以一些示例代碼非常感謝!非常感謝你!

回答

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

這並不直接解決我的問題,而是給了我有益的見解解決原來的問題。感謝:D – nevets