Редактировать коллекцию в отдельных списках - PullRequest
1 голос
/ 19 февраля 2012

У меня есть исходные элементы, подобные этому:

var collection = new ObservableCollection<SourceItems>(source);

источник реализует INotifyPropertyChanged

Мне нужно отредактировать и просмотреть эту коллекцию в CheckListBoxes(listBox с checkBoxes из WPFToolKit) с правилами:

  • каждый CheckListBoxes должен быть отсортирован по одному из полей коллекции.Коллекция имеет поле заказа для каждого CheckListBox.Например - ItemOrder.
  • видимые элементы в одном listBox зависят от отмеченных элементов из другого.

Каждый CheckListBox имеет itemsSource

checkListBox1.ItemsSource=collection;

Итак, если я проверюэлементы в одном списке, я должен видеть только отмеченные элементы в другом.И каждый listBox должен быть отсортирован по одному из полей источника

  • listBox1 по полю orderItem

  • listBox2 по полю orderVisibleItem и т. Д.

Пользователь может перемещать элементы в каждом списке ListBox, и это не должно влиять на порядок в другом.

Я пытался создать CollectionViewSource для каждого ListBox.Но когда я сортирую один, он сортирует друг друга.

Linq для фильтрации и сортировки тоже не работает, потому что изменения не обновляются динамически.

Есть ли лучший способ создать такую ​​функциональность?

1 Ответ

0 голосов
/ 19 февраля 2012

Вы должны использовать CollectionViewSource. Я предполагаю, что вы использовали CollectionViewSource.GetDefaultView(.. )? Вы должны создать два НОВЫХ представления для коллекции:

CollectionViewSource cvs = new CollectionViewSource() { Source = TheCollection };
...