WPF - изменение порядка элементов ListBox влияет на другой ListBox - PullRequest
0 голосов
/ 15 июля 2011

У меня есть 2 ListBox, которые привязаны к одному и тому же источнику Фотографии (который является коллекцией фотографий)

Я знаю, что есть способ получить CollectionView источника (который является фотографиями), а затемлюбое изменение в этом CollectionView (например, сортировка, например) повлияет на все цели, связанные с этим источником.

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

myListBox1.Items.SortDescription.Add (new SortDescription ("ProperyName", ListDirection.Ascending));

позволяет изменить и myListBox1, и myListBox2 ..

есть идеи?спасибо!

1 Ответ

4 голосов
/ 15 июля 2011

С MSDN :

Все коллекции имеют CollectionView по умолчанию. WPF всегда связывается с смотреть, а не коллекцию. Если вы привязываете непосредственно к коллекции, WPF фактически связывается с представлением по умолчанию для этой коллекции. это представление по умолчанию является общим для всех привязок к коллекции, что приводит к все прямые привязки к коллекции, чтобы разделить сортировку, фильтр, группа и текущие характеристики элемента одного представления по умолчанию. Кроме того, вы можете создать представление вашей коллекции в Extensible. Язык разметки приложения (XAML) или код, использующий Класс CollectionViewSource и привязка вашего элемента управления к этому представлению.

Вы можете создать CollectionViewSource в XAML как два ресурса и связать свои ListBox с этими представлениями, а не с коллекциями напрямую.

...