Expression Blend VSM и Event Driven - PullRequest
       33

Expression Blend VSM и Event Driven

4 голосов
/ 02 октября 2011

Я недавно использовал Expression Blend и обнаружил, что у него есть что-то, называемое Visual State Manager, в чем его отличие от модели, управляемой обычными событиями, и что лучше?

Ответы [ 3 ]

1 голос
/ 03 октября 2011

События для случаев "вещей", например ::1001*

  • Был ли я нажал?
  • Сработал ли мой таймер?
  • Мои данные готовы?

Диспетчер визуальных состояний используется для управления несколькими одновременными состояниями элемента управления.

  • Я нажата?
  • Мышь надо мной?
  • Я проверен?

События - это просто обратные вызовы для прослушивания объектов, в то время как состояния - это визуальные состояния, поэтому в основном они используются для совершенно других целей. События могут вызывать изменения состояния, но это единственное перекрытие.

0 голосов
/ 10 ноября 2011

Диспетчер визуальных состояний используется для управления состоянием (на удивление). Например, ваша кнопка может быть разной:

  • Наведите курсор мыши
  • Мышь вниз
  • Disabled
  • Включено

Ваш код на самом деле не должен знать об этом, поэтому все визуальные состояния вашего приложения должны храниться в XAML.

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

А что касается событий, то, на самом деле, сейчас я чаще использую команды, я считаю, что они более полезны, чем сами по себе события.

0 голосов
/ 04 октября 2011

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

...