#wpf #data-binding #user-controls
#wpf #привязка к данным #пользовательские элементы управления
Вопрос:
В настоящее время у меня есть два пользовательских элемента управления, которые оба используют список объектов. Эти списки объектов представляют собой типы кофе. Эти 2 пользовательских элемента управления по-разному отображают типы кофе.
Что я хочу сделать, так это то, что когда тип кофе выбран в одном пользовательском элементе управления, он обновит или выделит тот же тип кофе, выбранный в другом пользовательском элементе управления.
Я попытался создать ObservableCollection
, который просматривали бы оба пользовательских элемента управления, но это не сработало.
Есть другие идеи?
Спасибо!
Комментарии:
1. Вы пытались привязать SelectedValue из одного списка к другому?
Ответ №1:
Дроиды, которых вы ищете: Селектор.Синхронизирован с текущим значением
Вы можете установить для свойства IsSynchronizedWithCurrentItem значение true, чтобы гарантировать, что выбранный элемент всегда соответствует свойству CurrentItem в ItemCollection. Например, предположим, что существуют два элемента управления ListBox с их свойством ItemsSource, установленным на один и тот же источник. Установите IsSynchronizedWithCurrentItem в значение true для обоих списков, чтобы убедиться, что выбранный элемент в каждом списке одинаков.
Комментарии:
1. ошибаюсь… чтобы понять, о чем говорит H.B., вам нужно сначала проверить CollectionView — например, прокрутите страницу MSDN вниз.
2. @DK: Не совсем, для этого не нужно беспокоиться о CollectionViews, потому что каждая коллекция имеет представление по умолчанию, которое генерируется автоматически.
3. ах, приятно познакомиться с Х.Б., спасибо — это очень интересная тема для изучения.
4. Привет, ребята, я все еще не совсем понимаю это. Но, возможно, я проясню немного больше. Эти 2 пользовательских элемента управления, каждый из которых имеет свойство dependency, которое будет содержать список (наблюдаемую коллекцию), и при его визуализации он считывает этот список и обновляет пользовательский интерфейс каждого из них. Итак, теперь, в одном пользовательском элементе управления, когда я выбираю тип кофе, он отображает его любым способом, и я знаю, на что нажимается. Но передавая это другому пользовательскому элементу управления, это можно сделать с помощью Selector?
5. @Angelus: Попробуйте установить
IsSynchronizedWithCurrentItem="True"
для обоих элементов управления списком внутри двух пользовательских элементов управления (возможно, заставить сам пользовательский элемент управления пересылать этот параметр из внутреннего элемента управления)