请参阅下面的代码
private ObservableCollection<Person> testList = new ObservableCollection<Person>();
public ObservableCollection<Person> TestList
{
get { return testList; }
set
{
if (testList != value)
{
testList = value;
SetProperty<ObservableCollection<Person>>(ref testList, value);
}
}
}
private ListCollectionView personListView;
public ICollectionView PersonListView
{
get
{
if (personListView == null)
{
personListView = new ListCollectionView(TestList)
{
Filter = p => FilterPerson((Person)p)
};
}
return personListView;
}
}
我想知道如何在将新项目插入TestList时更新PersonListView并刷新UI,或者重新分配整个TestList?我试过在TestList set方法中调用Refresh方法,但是当一个新项插入到集合中时,不会调用set方法。
由于
答案 0 :(得分:0)
我认为你可以将一个集合更改事件添加到TestList observable集合中并过滤其中的PersonListView。
TestList.CollectionChanged += TestList_CollectionChanged;
void TestList_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
if (e.NewItems != null)
{
/// Filter the PersonListView
}
}