Мне вполне нравится John Resig Простое Наследование JavaScript .
var MyWidget = Class.extend({
init: function(widget_name){
this.widget_name = widget_name;
},
doSomething: function() {
alert('my name is ' + this.widget_name);
}
});
нбар: объект "Класса", продемонстрированный выше, не включен в сам jQuery - это - 25 отрывков строки от г-на jQuery самого, обеспеченный в статье выше.
Предполагая, что есть someCommand
с commandArgs
:
if (someCommand.CanExecute(commandArgs))
{
someCommand.Execute(commandArgs);
}
Если вы используете RoutedUICommand
, Execute и CanExecute , обязательно передайте допустимую цель, чтобы можно найти правильную CommandBinding
.
Кроме того, если обработчики вашей команды не изменяют объекты View напрямую, рассмотрите возможность использования DelegateCommand Кента Богаарта. Использование команд делегата переместит бизнес-логику в ViewModel, что приятно, и они особенно удобны, если вам нужно выполнять команды непосредственно из кода, и у вас нет доступа к View (или объекту View, из которого вы можете пузыриться. в ваш CommandBindings
).
Помните, что если вам нужно вызвать другое событие внутренних компонентов, например кнопку щелчка, см. Методы, начинающиеся с Perform (например, PerformClick кнопки).
Другие ответы допустимы, используйте Только выполнить ...