Как Вы успешно реализовали MessageBox. Показать () функциональность в MVVM?

Вы могли использовать \r\n, или System.Environment.NewLine.

41
задан Dave Clemmer 4 August 2011 в 23:59
поделиться

5 ответов

Из двух, которые вы упомянули, я предпочитаю вариант №2. Кнопка Удалить на странице просто делает " (EditContactItemsControlSelectionViewModel.DeleteCommand). Карл вызывает всплывающее окно из ViewModal (Что !? :-). Мне твоя идея больше нравится. Кажется, что Unit Test проще.

(EditContactItemsControlSelectionViewModel.DeleteCommand). Карл вызывает всплывающее окно из ViewModal (Что !? :-). Мне твоя идея больше нравится. Кажется, что Unit Test проще.

5
ответ дан 27 November 2019 в 00:56
поделиться

Служба спасения. Используя Onyx (отказ от ответственности, я являюсь автором), это очень просто:

public void Foo()
{
    IDisplayMessage dm = this.View.GetService<IDisplayMessage>();
    dm.Show("Hello, world!");
}

В работающем приложении это косвенно вызовет MessageBox.Show («Привет, мир!»). Во время тестирования сервис IDisplayMessage можно смоделировать и предоставить ViewModel для выполнения любых ваших задач во время теста.

12
ответ дан 27 November 2019 в 00:56
поделиться

Я бы просто скинул с ВМ. Я не хочу, чтобы мне приходилось пользоваться чьими-то услугами или писать свои собственные, просто чтобы открыть окно сообщений.

0
ответ дан 27 November 2019 в 00:56
поделиться

Я сделал простой элемент управления-обертку MessageBox для использования в чистом MVVM решении и все еще позволяющий проводить модульное тестирование. Подробности в моем блоге http://geekswithblogs.net/mukapu/archive/2010/03/12/user-prompts-messagebox-with-mvvm.aspx

mukapu

1
ответ дан 27 November 2019 в 00:56
поделиться

Я просто создаю интерфейс (IMessageDisplay или аналогичный), который внедряется в виртуальную машину, и у него есть такие методы, как MessageBox (ShowMessage() и т. Д.). Вы можете реализовать это, используя стандартное окно сообщений или что-то более специфичное для WPF (я использую этот на CodePlex какого-то парня по имени Prajeesh).

Таким образом, все разделено и проверяемо.

3
ответ дан 27 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: