В чем разница между WPF Command и Event? - PullRequest
7 голосов
/ 20 сентября 2010

В чем разница между WPF Command и Event?

Ответы [ 5 ]

5 голосов
/ 20 сентября 2010

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

Commands в WPF позволяет перемещать реализацию обработчика командбизнес слой.Команды объединяют состояние включения и выполнение, поэтому все на месте.Узнайте больше, выполнив поиск по шаблону MVVM.

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

4 голосов
/ 07 сентября 2012

Commands аналогичны Events, за исключением того, что мы можем связать любое количество элементов управления пользовательского интерфейса или жестов ввода с командой и связать эту команду с обработчиком, который выполняется, когда управление активировано или выполнены жесты.

Command также отслеживать погоду или нет они доступны.Если они недоступны, все элементы управления, связанные с этой командой, отключены.

Код, который выполняется при вызове команды, находится в обработчике событий Execute.Код, который определяет, может ли команда вызываться или не вызываться, находится в командах CanExecute обработчик событий.

В WPF есть несколько встроенных команд:

Command Class          | Example Commands
-----------------------------------------------
ApplicationCommands    | Close, Cut, Copy, Paste, Save, Print
NavigationCommands     | BrowseForward, BrowseBack, Zoom, Search
EditingCommands        | AlignXXX, MoveXXX, SelectXXX
MediaCommands          | Play, Pause, NextTrack, IncreaseVolume, Record, Stop
2 голосов
/ 20 сентября 2010

Вы можете связать команду WPF в представлении (XAML) и получить возникшее событие. Таким образом, вам не нужно использовать код, за которым нет нуля в MVVM.

Так что связующий элемент очень важен. Но он также реализует CanExecute, что обычно отключает ваш контроль, если он возвращает ложь, например, если это кнопка.

1 голос
/ 20 сентября 2010

В событиях действие тесно связано с его источником и не может быть свободно использовано повторно;Используя команды, вы можете легко поддерживать различные действия в одном месте и повторно использовать их в любом месте приложения.

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

взято - Обзор команд: http://msdn.microsoft.com/en-us/library/ms752308(v=VS.90).aspx

В этой статье объясняется концепция команд, и ее необходимо прочитать перед использованием команд.

Этот поток SO такжеСобери много полезной информации.:

Пример шаблона пользовательской команды WPF

0 голосов
/ 20 сентября 2010

Грубо говоря, Command - это инкапсуляция Object (кнопка, меню), состояние включения / выключения и действие.

Ограничение Command:

  • Многоадресная рассылка (вы можете использовать множественную привязку, но не так часто и не так хорошо, как многоадресная передача события)
  • Нужно2 шага, чтобы зажечь лампочку.(Если ваша кнопка всегда включена, то вы просто теряете свой код).
...