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