2013-08-10 2 views
0

Мое приложение WPF имеет два вида, и каждый вид имеет свою собственную модель представления. В одном представлении отображаются все имена клиентов с левой стороны. Во втором представлении показан список предметов, заказанных выбранным клиентом (на первом виде) с правой стороны. Данные во втором представлении должны быть изменены автоматически на основе моего выбора на первом представлении (вид имен клиентов). Какие-либо предложения. Заранее спасибо.Общение между представлениями

+0

Посмотрите на использование среды, такие как Prism или MVVMLight или т.д. Они обычно обеспечивают некоторый способ для ViewModels общаться друг с другом. Например, Prism имеет интерфейс IEventAggregator (и поддерживающий класс). Это позволяет одному ViewModel «публиковать» уведомления, а другой - «подписываться» на уведомления. Издателю все равно, кто подписался, если какой-либо ViewModel. Абоненту все равно, кто публикует. Это позволяет ViewModels оставаться полностью развязанными. –

ответ

1

То, что вы описываете, называется привязкой «Master-Detail». Общая идея заключается в том, что левый пользовательский вид списка клиентов (главный вид) будет привязан к ViewModel, содержащему список CustomerViewModels и выбранный CustomerViewModel. При изменении выбранного элемента в списке клиентов будет обновлен выбранный CustomerViewModel в ViewModel. Каждый из CustomerViewModel должен иметь коллекцию PurchaseViewModels, которая детализирует заказы клиента. Вид правой стороны (подробный вид) должен установить его DataContext для выбранного CustomerViewModel и использовать список покупок.

Вот устрашающе хорошо подходит проект для использования в качестве примера: http://www.codeproject.com/Articles/332615/WPF-Master-Details-MVVM-Application

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