В чем разница между командой WPF и событием в WPF?


Я просто гуглил разницу между командой WPF и событием в WPF. я приземлился на следующей странице stackoverflow, где идет обсуждение.

В чем разница между командой WPF и событием?

Я могу понять только следующее оттуда

  1. команды могут быть записаны на бизнес-уровне, в то время как событие только в презентации
  2. одна команда может быть связана со многими элементами управления, но событие может быть связано только с только один контроль.

Я прав? Есть ли между ними еще какая-то разница?

2 8

2 ответа:

Вы правы, но только отчасти.

  1. главная проблема там заключается в том, что события не вписываются хорошо вписывается в парадигму MVVM. Просто говоря, что события вряд ли могут быть подключаемы, вы не можете привязаться к обработчику событий. Тем не менее, нет никаких ограничений для использования команд в уровне представления, но нет никаких преимуществ от этого. Так же, как вы могли бы поймать свой элемент управления в BLL и прикрепить к нему обработчик событий, но этот случай еще хуже.
  2. Нет. Обработчики событий также могут быть связаны с различные элементы управления, как пока тип args события совпадает.

Также команды дают вам некоторые бесплатные преимущества. Например, использование элемента command будет отключено, если CanExecute() возвращает false. Еще одно преимущество заключается в том, что использование команд заставляет вас следовать принципу разделения забот .

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