Шаблон Silverlight MVVM с дочерним окном и общими данными - PullRequest
1 голос
/ 20 мая 2011

У меня есть ViewModel для «родительского» элемента управления, который отображает две сетки. Первая сетка содержит родительскую информацию, а вторая сетка отображает связанных дочерних элементов для выбранного родителя.

Это отлично работает без заминки. Однако проблема в том, что я должен предоставить кнопку обновления. Нажав на него, пользователь увидит детей выбранного родителя и решит удалить их или нет. Это делается через дочернее окно, содержащее ту же сетку, в которой отображаются связанные дочерние элементы, однако сетка находится в режиме «Включено».

Итак, вопрос в том, какой шаблон использовать с MVVM для: 1) получить данные дочернего окна? 2) после успешного обновления в дочернем окне обновить родительский файл?

Спасибо

1 Ответ

2 голосов
/ 20 мая 2011

Вам следует рассмотреть возможность использования шаблона-посредника для обеспечения связи между моделью представления вашего элемента управления и моделью представления вашего дочернего окна.

См. этот ответ , чтобы получить общий обзор шаблона посредника. Используя этот шаблон, один из подходов, который вы можете использовать, - это опубликовать сообщение при нажатии кнопки «Обновить», которое обрабатывается слушателем, показывающим дочернее окно (сообщение будет содержать данные дочерних окон и передано в контекст данных до показывается). После успешного обновления дочернее окно будет публиковать сообщение, которое слушает родитель, и это сообщение будет содержать информацию для обновления родительского элемента.

Возможно, вы также захотите взглянуть на раздел Шаблоны взаимодействия с пользователем в руководстве PRISM 4. Даже если вы не используете PRISM, общие принципы и подходы хорошо продуманы.

...