Извините, но я не знал, как сформулировать вопрос:
У меня есть два ObservableCollection
ObservableCollection MyMainList - это ObservableCollection, где хранятся все мои объекты.
ObservableCollection<T> MyFilteredList = new ObservableCollection(MyMainList.Where(x=>Condition))
- это коллекция ObservableCollection, отфильтрованная по некоторым параметрам.
В какой-то момент мне нужно добавить или удалить объекты из MyMainList, но тогда MyFilteredList не обновляется автоматически.
Мне нужно всегдасделать:
MyMainList.Add(newObject);
MyFilteredList.Add(newObject);
Есть ли способ сделать все это в одной строке, поэтому, когда я изменяю MyMainList, MyFilteredList будет автоматически обновляться?
Редактировать: Чтобы ответить АдрианоРепетти, когда я открываю свое окно, я загружаю все объекты (поэтому мне не нужно перезагружать мою БД каждый раз, когда я меняю фильтры).У меня есть три разных фильтра: - 1 комбинированный список "Affaire" (список контрактов) - 1 комбинированный список "Phase" (список субконтрактов) - 1 TextBox "Filter" (если я хочу видеть только объекты, имя которых содержит этот текст).
Когда я меняю выбор первого ComboBox, я обновляю список субконтрактов и обновляю отфильтрованный список сборок.
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
}
}
Когда я меняю выбор 2nd ComboBox (субконтракт),Я обновляю список MyFilteredList
private Phase selectedPhase;
public Phase SelectedPhase
{
get { return selectedPhase; }
set
{
selectedPhase = value;
this.NotifyPropertyChanged("SelectedPhase");
UpdateListAssemblages();
}
}
Затем, когда я изменяю свое значение TextBox, я также обновляю список
private string texteFiltre;
public string TexteFiltre
{
get { return texteFiltre; }
set
{
texteFiltre = value;
this.NotifyPropertyChanged("TexteFiltre");
UpdateListAssemblages();
}
}
Если я понял, это сообщение являетсячто мне нужно искать?Я еще не знаю, что такое ICollectionView, но я думаю, мне нужно выглядеть таким образом? Я получу некоторое время выполнения с помощью ICollectionView?как я вижу, мне все равно нужно обновить его?