Редактировать коллекцию в отдельных списках

У меня есть исходные элементы, такие как это:

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 };
Другие вопросы по тегам