Класс ButtonService будет иметь особую форму свойства Dependency, называемую «AttachedProperty».Когда этому свойству присвоено значение, будет выполнен обратный вызов, определенный метаданными для этого свойства зависимости.
Это код этого обратного вызова в классе ButtonService
, который выполнит всю проводку до нажатия кнопки.событие и событие CanExecuteChanged
предоставленного значения ICommand
.
Весь смысл этого шаблона «Команда» состоит в том, чтобы не помещать код в код позади.Код для выполнения некоторой обработки и определения того, когда такая обработка может быть выполнена, передается обратно в привязываемый объект данных (часто называемый «ViewModel»).Цель состоит в том, чтобы создать более тестируемый код, поскольку его гораздо проще тестировать без использования пользовательского интерфейса.
Обратите внимание, что если вы работаете с Silverlight 4, то Command
и CommandParameter
теперь реализуются Button
поэтому в SL 4 эта услуга не требуется.