不好意思,我不知道怎么回答这个问题:
我有两个收藏
ObservableCollection我的主列表
是可观察的集合,其中存储了我的所有对象。
ObservableCollection<T> MyFilteredList = new ObservableCollection(MyMainList.Where(x=>Condition))
是根据某些参数筛选的ObservableCollection。
在某一时刻,我需要添加或删除mymainlist中的对象,但myfilteredlist不会自动更新。
我需要一直这样做:
MyMainList.Add(newObject);
MyFilteredList.Add(newObject);
有没有一种方法可以在一行中完成所有这些操作,所以当我修改mymainlist时,myfilteredlist将自动更新?
编辑:要回答阿德里亚诺·雷佩蒂的问题,当我打开窗口时,我会加载所有的对象(所以我不需要每次更改过滤器时都重新加载数据库)。
我有三种不同的过滤器:
-1个“代办”组合框(合同清单)
-“阶段”组合框(分包合同清单)
-1文本框“filter”(如果我只想查看名称中包含该文本的对象)。
当我更改第一个组合框的选择时,我将更新分包合同列表,并更新已筛选的程序集列表。
private Affaire selectedAffaire;
public Affaire SelectedAffaire
{
get { return selectedAffaire; }
set
{
selectedAffaire = value;
this.NotifyPropertyChanged("SelectedAffaire");
if (value != null)
{
GetListPhaseInContract(); //I update the list of subcontracts in 2nd Combobox
}
UpdateListAssemblages(); // I update MyFilteredList
}
}
当我更改第二个组合框(分包合同)的选择时,我更新myfilteredlist的列表。
private Phase selectedPhase;
public Phase SelectedPhase
{
get { return selectedPhase; }
set
{
selectedPhase = value;
this.NotifyPropertyChanged("SelectedPhase");
UpdateListAssemblages();
}
}
当我更改文本框值时,我也会更新列表
private string texteFiltre;
public string TexteFiltre
{
get { return texteFiltre; }
set
{
texteFiltre = value;
this.NotifyPropertyChanged("TexteFiltre");
UpdateListAssemblages();
}
}
如果我理解,这个
post
我需要找的是什么?我还不知道什么是iCollectionView,但我想我需要这样看?使用ICollectionView是否可以获得一些执行时间?如我所见,我需要更新它吗?