У меня есть приложение со списком покупок.Мои товары имеют некоторые свойства, такие как string Name, bool InList
.И они реализуют вещь INotifyPropertyChanged.Пока это работает.
Я получаю элементы с сервера и сохраняю их в ObservableCollection<Item> AllItemsInDataBase
.
. В пользовательском интерфейсе у меня есть
- списоксо всеми Предметами (для целей отладки)
- a Список с предметами, уже находящимися в Списке покупок (item.InList == true)
- TextBox, где пользователи могут вводить имена, и они "предлагаются"с элементами с похожим именем.
Для полного списка я просто создаю ListBox
и прикрепляю ItemsSource к AllItemsInDataBase
, он работает как шарм.Они появляются по мере загрузки и все круто
Теперь для двух других списков (элементов в списке покупок и элементов, соответствующих поисковому слову) я создал ListCollectionView, прикрепил его к основному списку и добавил фильтр.,Вот так:
public ListCollectionView ItemsInList;
ItemsInList = CollectionViewSource.GetDefaultView(AllItemsInDataBase) as ListCollectionView;
ItemsInList.Filter = i => (i as Item).InList ;
//fill sources for ListBox in the UI
shoppingListLB.ItemsSource = ItemsInList;
allItemsLB.ItemsSource = AllItemsInDataBase;
И моя проблема в том, что ОБА отфильтрован список!
Как создать разные одновременные представления для одной и той же коллекции и отображать их одновременно?
PS: Как только он заработает, я создам другое представление с элементами, соответствующими полю поиска, поэтому мне нужно три фильтра одновременно