2009-10-19 1 views
0

Я пытаюсь ускорить работу с PRISM и как это работает с Silverlight/WPF. Можно ли использовать DelegateCommands для открытия нового всплывающего окна (Silverlight Window). Если да, то как я буду делать что-то подобное.MemberateCommand Newbie Question

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

Если у кого-то есть предложения, я был бы признателен.

ответ

4

Я использую команду делегата, чтобы по существу выполнить метод и/или передать данные обратно в ViewModel.

Всплывающее окно - это средство презентации, поэтому я не вижу ничего плохого в добавлении обработчика событий к кнопке и загрузке всплывающего окна из кода. Я бы предложил более подход к инфраструктуре/многократному использованию, создав какой-то IDialogService или создав экземпляр ViewModel/View и выставив представление View через просмотр или привязку к элементу управления контентом.

+0

+1 для IDialogService. Вы также должны использовать какой-то ServiceLocator, чтобы вы могли определять разные службы в зависимости от того, выполняете ли вы модульные тесты или действительно запускаете приложение. –

+0

Это, конечно, путь. Что касается локатора службы, используйте тот, который используется Prism (Microsoft.Practices.ServiceLocation.ServiceLocator.Current). –

+0

Позже я нашел что-то в сети, которое использует интерфейс IDialogService, чтобы выполнить именно то, что вы предложили. Это было интересное решение этой проблемы. Благодаря! – coson