Когда следует использовать Command
и когда использовать событие Click
?Разница между командами (ICommand) и событие Click
F.e. если у меня есть Button
в моем приложении UWP, что я должен использовать?
Когда следует использовать Command
и когда использовать событие Click
?Разница между командами (ICommand) и событие Click
F.e. если у меня есть Button
в моем приложении UWP, что я должен использовать?
Когда я должен использовать команду и когда использовать событие Click?
Твое широкий вопрос, и я бы просто ответить: «Это зависит». Потому что:
Command
реализует интерфейс ICommand
, и это означает, что больше кода, чтобы добавить к вашему приложению, но обычно это не изменится. Вместо этого обработчик события не требует реализации интерфейса.CanExecute
, сказать, когда команда может выполнить. Это не запрашивается у простого обработчика событий (например, MyButton_Click). Это означает, что с помощью Command
у вас будет больше контроля над элементами вашего пользовательского интерфейса (кнопка ничего не выполнит, если CanExecute
- false
).Command
, вы будете связывать его к DataContext (в ViewModel, если вы реализуете шаблон MVVM). Вместо этого, когда вы добавляете простой обработчик событий (например, MyButton_Click), код будет помещен в ваш код, который является логикой вашего основного окна. Это означает, что реализация Command
, по моему мнению, у вас будет все, что вам нужно изменить только в одном месте (ViewModel) вместо разбросанной логики в любом месте вашего проекта.Конечно, вы можете использовать все, что вы хотите, и мои пункты есть только, чтобы дать вам представление об этих различных реализациях и вы должны рассмотреть, какое решение подходит для вас, учитывая также требования, которые имеют (например: «Не использовать обработчики событий» или «Команда слишком продвинута, давайте просто будем использовать что-то простое» и т. д.) и/или другие ограничения в вашем проекте.
приятный ответ простыми словами –
команда переплетена с ViewModel, в то время как событие нажатия записываются в коде –
Другой бонус с командой, что он имеет CanExecute так что ваш UI может серым цвет кнопку, когда ее не удается выполнить действие. Для лучшей практики вы должны использовать интерфейс ICommand, что делает ваш код намного чище и проще в обслуживании в долгосрочной перспективе, но если у вас будет только одна кнопка для простого приложения, тогда нет реальной проблемы при использовании события click. – mbrdev
Другим преимуществом команды является то, что одна и та же команда может быть привязана к нескольким элементам пользовательского интерфейса (например, вы можете привязать ту же команду к элементу меню и кнопке на панели инструментов). – Joe