Взаимодействие с WPF Запросы в PRISM - PullRequest
2 голосов
/ 14 апреля 2011

У меня есть то, что, на первый взгляд, кажется очень простым требованием - иметь возможность показывать окно сообщения из модели представления моего приложения WPF Prism.

При чтении документации все звучитхорошо, когда я читаю о запросах на взаимодействие, но потом узнаю, что WPF не поддерживает PopupChildWindowAction.

Как люди обходятся без этого.По сути, я хочу, чтобы в моем модуле оболочки / или в инфраструктурном модуле было окно сообщений, которое будет подписываться на события и всплывающее окно при публикации этого события.

Другая проблема, с которой я столкнулся, заключалась в том, чтобы всплывающее окно располагалось по центру в родительском окне (раковина).

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

Ответы [ 4 ]

4 голосов
/ 22 июня 2011

Из сообщения CodePlex Карла Шиффлета:

Я написал WPF-версию запроса на интерактивное обучение для моего MVVM-модуля Box:

http://visualstudiogallery.msdn.microsoft.com/en-us/3ab5f02f-0c54-453c-b437-8e8d57eb9942

Установите это расширение Visual Studio.

Создайте новый проект с помощью шаблона обучения MVVM.

Ознакомьтесь с DialogInteractionRequestView.xaml и его реализацией.

Приветствия

Karl

0 голосов
/ 30 января 2013

Поскольку PopupChildWindowAction есть только в Silverlight, я создал свой собственный PopupAction, унаследованный от класса TriggerAction, и просто переопределил тело метода Invoke (), чтобы вызвать PopupWindow, где я могу передать любой UserControl из xaml в теге триггера взаимодействия призмы.Из ViewModel я вызываю событие запроса интерактивности, которое вызывает мое PopupAction в представлении и открывает всплывающее окно с желаемым пользовательским элементом управления, отображаемым на нем.Кажется, работает.Мне нужно отполировать пример больше.Но вот ссылка -

http://wpfgrid.blogspot.com/2013/01/simple-prism-mvvm-way-to-display-dialog.html#step3

0 голосов
/ 15 апреля 2011

Использование RegionPopupBehavior из Prism 2.2 RI.

0 голосов
/ 14 апреля 2011

Используйте EventAggregator в PRISM для подписки на события, и у вас есть ведущий в памяти, который прослушивает событие, а затем создает представление, используя данные события, и вызывает ShowDialog для представления.

Затем результат диалога можно использовать для публикации события «ответ», которое будет перенаправлено обратно в процесс, который инициировал событие, которое привело к отображению диалога.

...