2009-08-07 50 views
2

我使用新的PagedCollectionView作爲我的ItemsSource。如何在Silverlight中實現「實時」過濾

我約束的CollectionView到DataGrid,並且需要電網,只顯示該值通過我的過濾器是這樣的:

  var oc = new ObservableCollection<User>(); 
     var pc = new PagedCollectionView(oc); 
     dataGrid.ItemsSource = pc; 

凡User類實現INotifyPropertyChanged。我正在應用這樣的過濾器:

 private void CheckBox_Checked(object sender, RoutedEventArgs e) 
    { 
     pc.Filter += Include; 
    } 

    private bool Include(object obj) 
    { 
     return (obj as User).Name == filterText.Text; 
    } 

它的工作原理。問題是如果我更新用戶,過濾結果不會更新。如果清楚並重新應用它的過濾器,它就可以工作。

當然我可以調用PagedCollectionView上的Refresh()方法,但我認爲這可以在不手動刷新視圖的情況下完成。

我需要的是一個「實時過濾」機制。任何想法如何編碼?

情景是:查看系統上的實時報警的應用程序。假設用戶選擇僅查看第0列中的「錯誤」或「警告」行(這是我的過濾器)。當一行中的column0從「Info」更改爲「Warning」時,如果沒有我調用Refresh(),該行應該是自動可見的(它通過過濾器)。

感謝Larsi

回答

0

你不能只使用在Silverlight 3的SDK的AutoCompleteBox控制?

+0

嗯。不知道我明白如何。我已經用一個場景更新了帖子,以闡明我需要什麼 – Larsi 2009-08-18 10:21:58