2015-07-24 3 views
1

Я не использую ничего, кроме простого проекта приложения WPF в visual studio. Я применил приложение mvvm.C#, WPF, MVVM, Создание режима просмотра диалоговых окон/диалогов сообщений?

Я хочу отобразить список изменений контента, сделанных пользователем. У меня есть модель основного окна, и в настоящее время она просто строит строки с изменениями. У меня есть объекты, которые можно повторно использовать для отображения их свойств (содержимого).

В настоящее время я использую MessageBoxResult для отображения очень длинной строки с изменениями. Это ужасный дизайн (я знаю), но я не мог найти ответ на вопрос, какой класс имеет обычный проект wpf, который позволил бы мне достичь того, что я хочу.

Я знаю, что есть всплывающий класс, который я могу использовать. На практике это лучше - другая модель представления для диалога или всплывающее окно?

Может ли кто-нибудь представить простой пример одного из двух подходов?

Заранее благодарю вас за ваш ответ.

ответ

1

Что я сделал в прошлом, это простой элемент управления Border, а внутри TextBlock и любых элементов управления Button мне нужно. Я связываю TextBlock.Text с общедоступным свойством string с именем «MessageBoxMessage», который вызывает OnPropertyChanged(). Я связываю Command каждого Button с отдельной публикацией ICommand, которая определяет, какое действие следует предпринять в модели представления при нажатии кнопки. Затем я привязываю видимость элемента управления Border, который содержит все другие элементы управления, о которых я упоминал, к свойству видимости.

Когда я хочу, чтобы показать диалоговое окно, я установил MessageBoxMessage к сообщению я хочу показать, убеждается команды правильно установлены, а затем установите Visibility на Border к Visibility.Visible. Появится окно (рамка), сообщение и кнопки.

Вы даже можете реализовать полупрозрачный прямоугольник под границей (над остальной частью формы), который вы установили на видимое одновременно. Это даст вам приятный эффект «dimam» формы, а также заблокирует обычные элементы управления формы. Общее примечание: для этого необходимо, чтобы эти элементы управления находились в самом низу вашего XAML, поскольку индекс z среди элементов управления на том же уровне выводится из их размещения в XAML - ниже в коде находится верхний уровень на форма.

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

+0

Благодарим за отзыв. Я не знал, что относительно размещения элементов управления в xaml. Я надеюсь передать способ повторного использования некоторого объекта, который я показываю в главном окне. Думаю, я сделаю это. – maria

Смежные вопросы