Проверка пользовательского интерфейса перед выполнением RelayCommand WPF - PullRequest
0 голосов
/ 14 февраля 2011

Я новичок в WPF и попытался реализовать демонстрационное приложение с RelayCommand .

Мой вопрос такой:

Если я хочу выполнить команду, которая должна спросить пользователя, уверен ли он, что он хочет выполнить ее первым - какой лучший способ это сделать? Мне нужно "ты уверен?" окно сообщения для поп. Однако команда выполняется в модели представления, и, конечно, я не хочу связываться с GUI там.

Спасибо

Ответы [ 2 ]

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

Способ, которым я справляюсь с этим, заключается в том, чтобы иметь интерфейс IDialogService, который зарегистрирован в вашем IOC и доступен вашим ViewModels.

Служба затем предоставляет различные способы взаимодействия с «пользователем».Таким образом, у вас может быть метод ConfirmMessage, который возвращает истину или ложь на основе того, что пользователь принимает диалог.

Тогда для модульного тестирования, скажем, у вас может быть другая реализация IDialogService, которая позволяет вам подавать готовые ответы наваша ViewModel во время тестирования.

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

Я просто столкнулся с этим сам.Я использую MVVM Light, и для этого я использовал Messenger.

У меня была моя ViewModel, отправившая GetConfirmationMessage, которую я зарегистрировал в коде.В обработчике для GetConfirmationMessage я открыл диалоговое окно и получил результаты.Если пользователь нажал «ОК», я отправил сообщение ConfirmationReceived, которое было обработано ViewModel для соответствующих обновлений.

...