Редактировать коллекцию в отдельных списках
У меня есть исходные элементы, такие как это:
var collection = new ObservableCollection<SourceItems>(source);
источник реализует INotifyPropertyChanged
Мне нужно отредактировать и просмотреть эту коллекцию в CheckListBoxes (listBox с checkBoxes из WPFToolKit) с правилами:
- каждый CheckListBoxes должен быть отсортирован по одному из полей коллекции. Коллекция имеет поле заказа для каждого CheckListBox. Например - ItemOrder.
- видимые элементы в одном listBox зависят от отмеченных элементов другого.
Каждый CheckListBox имеет itemsSource
checkListBox1.ItemsSource=collection;
Итак, если я проверяю элементы в одном списке, я должен видеть только проверенные элементы в другом. И каждый список должен быть отсортирован по одному из полей источника
listBox1 по полю orderItem
listBox2 по полю orderVisibleItem и так далее.
Пользователь может перемещать элементы в каждом списке, и это не должно влиять на порядок в другом.
Я пытался создать CollectionViewSource для каждого ListBox. Но когда я сортирую один, он сортирует друг друга.
Linq для фильтрации и сортировки тоже не работает, потому что изменения не обновляются динамически.
Есть ли лучший способ создать такой функционал?
1 ответ
Вы должны использовать CollectionViewSource
, Я предполагаю, что вы использовали CollectionViewSource.GetDefaultView(.. )
? Вы должны создать два НОВЫХ представления для коллекции:
CollectionViewSource cvs = new CollectionViewSource() { Source = TheCollection };