WPF Prism Master Подробности формы - PullRequest
0 голосов
/ 22 июля 2010

Я создаю приложение с использованием WPF, которое использует платформу Prism. Я создал форму оболочки и определил области для панели инструментов, меню и рабочей области. В рабочей области я могу загрузить модули, но у меня есть одно требование, где я должен загрузить бланк Employee Master, показывающий весь список сотрудников в сетке. При двойном щелчке строки сотрудника в сетке необходимо перейти к форме сведений о сотруднике. Здесь я не должен использовать элемент управления Tab. При двойном щелчке по сетке сотрудников мастер-форма сотрудника должна закрываться или выгружаться, а экран сведений о сотруднике должен загружаться.

Любые предложения экспертов Prism по этому поводу.

Спасибо и С уважением, Гарри

Ответы [ 2 ]

2 голосов
/ 12 августа 2010

Я нахожу, что в этих сценариях люди ищут места, где можно "найти призму" своего решения. Вот мое практическое правило для того, когда использовать EventAggregator в Prism:

  1. Приложение все еще полезно, независимо от того, существует подписчик на событие
  2. Я не могу использовать обычное событие .NET или другой механизм, потому что подписчик определен в другом модуле

Это единственный раз, когда я использую EventAggregator для решения проблемы. В противном случае я просто использую механизмы, встроенные в WPF. В частности, в сценарии мастер / подробности два вида, вероятно, полезны только вместе, что делает их логически одним и тем же видом, а не отдельными видами.

В таком случае я обычно делаю что-то подобное (в этом сценарии я опускал аппликативные DataTemplates, но, надеюсь, этого достаточно, чтобы проиллюстрировать, что для решения этой проблемы не требуется ничего особенного).

<ListBox ItemsSource="{Binding Turtles}" IsSynchronizedWithCurrentItem="True" />
<ContentControl Source="{Binding Turtles/}" />

При этом используется простой механизм WPF, который отображает список элементов в коллекции, и когда пользователь выбирает элемент, значение «Черепашки /» изменяется на выбранный элемент. Просто. Не нужно слишком усложнять вещи.

Если вы действительно чувствуете, что ваш сценарий требует EventAggregator (соответствует правилам № 1 и № 2 выше), то сделайте это как можно проще ... прослушайте событие, вызванное моделью представления, и используйте его из модель представления (вы используете MVVM, верно?). Все остальное - головная боль.

0 голосов
/ 22 июля 2010

Я бы использовал Eventaggregator для этого или, возможно, новый VisualStateManager.

Одна из ловушек, в которую я попала с PRISM, - продумывать замыслы. В конце концов я перестал его использовать и вырвал его из своего проекта, и дела шли намного лучше. Хотя я все еще использую и люблю Eventaggregator ... но есть большая кривая обучения на целые регионы и представление о состоянии ...

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