Команда делегата и маршрутизируемая команда - PullRequest
10 голосов
/ 19 апреля 2011

В чем разница между делегированной командой и маршрутизируемой командой?

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

Итак, каковы преимущества делегирования команд по сравнению с маршрутизируемой командой при использовании MVVM?

Ответы [ 2 ]

11 голосов
/ 19 апреля 2011

Некоторые преимущества использования DelegateCommand (a.k.a. RelayCommand):

1) Требуется меньше XAML / кода для их поддержки (не нужны CommandBindings)

2) Код реализации команды можно легко написать в классах ViewModel

3) Для правильной работы они не зависят от дерева элементов пользовательского интерфейса, что также помогает повысить производительность

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

Если вам в конечном итоге понадобится использовать маршрутизируемые команды, ознакомьтесь с моей статьей Использование RoutedCommands и ViewModel в WPF , чтобы узнать, как упростить вещи.

3 голосов
/ 19 апреля 2011

RoutedCommands, как следует из названия, маршрутизируются, это означает, что они перемещаются по VisualTree вверх или вниз и проверяют, есть ли для них CommandBindings.См. Обзор маршрутизируемых событий и Обзор команд .

Также см. Ссылки для соответствующих классов:

DelegateCommand RoutedCommand

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...