Какова лучшая практика для обработки событий в MVVM - PullRequest
2 голосов
/ 31 июля 2010

Я делаю серебряный свет, используя модель MVVM, и мне трудно выполнять обработку событий через MVVM, особенно из-за того, что обработчики событий делают много изменений в представлении, таких как включение и отключение кнопок, обновление функций медиа-элементов и позиция. Я все еще новичок в MVVM и не могу представить, как я могу это сделать. Кто-нибудь уже знает хорошую статью для начала или простой подход к пониманию :) Я отвечу тем, что мне может быть интересно, пока я тоже буду искать. Спасибо

1 Ответ

4 голосов
/ 31 июля 2010

1) Поймите, что существуют разные «ароматы» MVVM.Строгие / хардкорные шаблоны MVVM, хотя теоретически необходимы, не нужны.

2) Многие события просмотра могут обрабатываться с помощью команд.WPF поддерживает это, и я верю, что Silverlight 4 тоже.Простым представлением-событием, с которого можно начать, было бы нажатие кнопки.Это позволяет вам обрабатывать событие в ViewModel (вместо «выделенного кода» представления).

3) Для таких вещей, как включение / отключение элементов управления / состояний представления через модель MVVM, вот пример /объяснение:

  • Элементы управления Xaml (скажем, кнопка) привязаны к данным для ViewModel для любого свойства (в данном случае это будет свойство IsEnabled кнопки).
  • ВашViewModel имеет свойство IsButtonEnabled.
  • Всякий раз, когда вы изменяете это свойство в виртуальной машине, поднимите уведомление PropertyChanged, и вы увидите связанный результат в виде (состояние IsEnabled кнопки будет обновлено).

ps - с помощью свойств виртуальной машины вы можете делать многие вещи таким образом: от текста до различных состояний свойств, цвета, вы даже можете воспроизводить анимации в установщиках / получателях свойств ... и т. Д.

Приветствия

...