Данные, обновляющие другие пользовательские элементы управления в WPF

#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" для обоих элементов управления списком внутри двух пользовательских элементов управления (возможно, заставить сам пользовательский элемент управления пересылать этот параметр из внутреннего элемента управления)