MVVM с конкретными событиями пользовательского интерфейса на codebehind - PullRequest
0 голосов
/ 10 июля 2010

У меня есть страница Silverlight, на которой мало элементов управления, и все варианты поведения не привязаны к данным.Например, RichTextBox привязан к данным для свойства Text.Но поведение элементов управления, такое как полужирный, курсив, нумерация и т. Д., Управляется событием нажатия кнопки на панели инструментов над элементом управления.Эти элементы управления изменяют значение данных, но на самом деле не сохраняют и не извлекают данные.Итак, можно ли хранить такие события пользовательского интерфейса на странице с выделенным кодом на странице Silverlight, чем при создании объекта ICommand в ViewModel?

MVVM говорит, что ваш View должен взаимодействовать с ViewModel для внутреннего взаимодействия с моделью.Здесь представление просто обновляет представление, а не модель.Так в порядке Code-Behind для таких событий?

1 Ответ

1 голос
/ 10 июля 2010

Подобные вещи могут быть весьма субъективными, но помните, что ViewModel - это модель вида, включая настройки того, как вид отображается. У меня есть кнопки и т. Д., Которые подключаются к ICommands в ViewModel (для примера google для DelegateCommand или RelayCommand), а не к командам в View. Моя ViewModel затем обновляет свое состояние по мере необходимости, и представление реагирует на события. Нажатие кнопок циклически повторяет ViewModel, даже если виртуальная машина не делает ничего, кроме запуска событий, для которых View отвечает (и обрабатывает исключения, ведение журнала и т. Д. Для события).

Для сложного поведения в представлении, которое не влияет на данные, с которыми оно работает, тогда, конечно, целесообразно обрабатывать события в выделенном фрагменте кода, хотя я обычно нахожу, что это имеет место в пользовательских элементах управления, а не в окнах и т.д. *

...