WPF Как вызвать некоторую логику в родительской ViewModel из дочерней ViewModel в MVVM - PullRequest
1 голос
/ 04 февраля 2011

Я использую Prism.У меня есть tabcontrol в моем родительском представлении.У меня есть две вкладки в моей вкладке управления.Каждая вкладка имеет свой вид.У каждой вкладки есть кнопка, которая может или не может (в зависимости от некоторой внутренней логики) заставить управление вкладками переключаться на другую вкладку.Как лучше всего настроить такую ​​архитектуру?

Я против использования EventAggregator, потому что считаю его неаккуратным и легко используемымЕсть ли другой способ сделать это?Должен ли я использовать RoutedCommand или события?

Я также собираюсь делиться информацией между вкладками, но я хочу, чтобы они были слабо связаны и имели различные модели представления.Есть мысли, предложения или критика?

Спасибо!Brett

Ответы [ 2 ]

4 голосов
/ 04 февраля 2011

Некоторое время назад я написал сообщение в блоге, в котором излагались некоторые параметры взаимодействия ViewModel от ребенка к родителю.Может дать вам несколько идей.

Вложенные ViewModels

1 голос
/ 04 февраля 2011

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

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

...