Как заставить TreeView и ListBox SelectedItem оставаться в синхронизации? - PullRequest
2 голосов
/ 30 мая 2009

Я уверен, что это произошло раньше, но я не смог найти ответ.

Я создал базовую ViewModel, которая содержит список людей (массив Person) со свойством SelectedPerson, которое, естественно, указывает на текущего выбранного человека в списке людей. У меня также есть ListBox и TreeView, которые привязаны к списку людей ViewModel.

То, что я хотел бы сделать, это синхронизировать SelectedValue объекта ListBox и SelectedItem TreeView с синхронизацией с SelectedPerson объекта ViewModel. Идея состоит в том, что независимо от того, как SelectedPerson изменен (через элемент управления, через код и т. Д.), Все элементы управления должны обновляться должным образом. Я могу заставить его работать с двумя ListBox, что хорошо, но я не могу заставить его работать с ListBox и TreeView, потому что SelectedItem TreeView доступен только для чтения и, по-видимому, недоступен через XAML.

Куда мне обратиться, чтобы получить идеи по созданию этой работы?

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

Спасибо!

Ответы [ 2 ]

2 голосов
/ 30 мая 2009

Вы можете использовать Selector.IsSyncronizedWithCurrentItem.

Вы можете связать оба списка и древовидную структуру с одним и тем же источником данных и убедиться, что для параметра IsSyncronized установлено значение true. Тогда любые изменения текущего элемента в одном будут отражены в другом.

Более подробную информацию можно найти здесь:

текст ссылки

0 голосов
/ 01 июня 2009

Я спросил, и лучшее решение, которое я мог найти, было здесь

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/cc73893a-3383-4328-a002-ed8fb002a19d

Это работает для меня, но на данный момент это не самое оптимальное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...