MVVM ViewModel для просмотра связи - PullRequest
1 голос
/ 28 марта 2012

Я новичок в MVVM и работаю над приложением, я хочу добиться нескольких вещей в своем приложении

  1. Моя модель представления должна иметь возможность инициировать новое представление.сценарий (команда привязана к кнопке, и какой-то процесс решает, что делать, и на основании результата мне нужно показать View1 или View2)

  2. При успешной операции должна отобразиться моя модель представленияокно сообщения, если открыто несколько представлений, то сообщение должно запрашивать правильное представление (с которым привязана viewmodel).

Я хочу предоставить какое-то уведомление из моей модели представления для просмотра,Пожалуйста, наведите меня в правильном направлении.

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 июля 2013
  1. Вы должны создать новый вид и перейти к нему.
  2. Вы можете использовать обмен сообщениями в MVVM Light Framework. Отправить сообщение из вашей ViewModel для просмотра. Примеры: http://chriskoenig.net/2010/07/05/mvvm-light-messaging/
0 голосов
/ 29 марта 2012

Возможно, вы захотите попробовать некоторые из множества фреймворков mvvm. Мне лично нравится mvvm light, потому что он работает в silverlight и WPF, и его легко использовать http://mvvmlight.codeplex.com/ (без принадлежности)

Вот хорошее сравнение / контраст некоторых основных фреймворков: Какую фреймворк для MVVM мне следует использовать?

Большинство фреймворков имеют систему обмена сообщениями, которая предоставляет возможность отправлять обновления между представлением и моделью представления, а также между представлениями. Большинство платформ также предоставляют стандартные сообщения, которые также обрабатывают ящики сообщений MVVM (я знаю, что MVVM Light делает).

Для обработки переключения между представлениями в WPF я использую DataTemplates и Content controls

В виде .xaml добавляю <ContentControl Content="{Binding ActiveViewModel}" /> и это место, где будет отображаться внедренный вид. ActiveViewModel - это объект для viewModel, который содержит выбранную viewModel.

В ResourceDictionary я добавляю что-то вроде:

  <DataTemplate DataType="{x:Type ViewModelNameSpace:ViewModelClassName}">
    <ViewNameSpace:ViewClasName/>
  </DataTemplate>

Наконец, в ViewModel я установил свойство ActiveViewModel (то есть настройку для уведомления пользовательского интерфейса об изменениях через INotifyPropertyChanged) для экземпляра viewModel, который я хотел бы использовать.

ActiveViewModel = new ViewModelClass();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...