2012-02-19 2 views
1

У меня есть исходные элементы, как это:Редактировать коллекцию в отделенных ListBoxes

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

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

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

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

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

checkListBox1.ItemsSource=collection; 

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

  • listbox1 полевого OrderItem

  • listBox2 полевого orderVisibleItem и так далее.

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

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

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

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

ответ

0

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

CollectionViewSource cvs = new CollectionViewSource() { Source = TheCollection }; 
+0

Отлично! Большое спасибо! – Peter

Смежные вопросы