static RoutedCommand() { CanExecuteEvent.AddClassHandler <IRoutedCommandBindable>(CanExecuteEventHandler); ExecutedEvent.AddClassHandler <IRoutedCommandBindable>(ExecutedEventHandler); }
protected override bool CanExecuteCore(object parameter) { // 没有事件则默认为可执行 // 无try-catch的强转性能比is和as好 return(CanExecuteEvent?.Invoke((T)this, parameter) ?? true); }
/// <inheritdoc /> public override bool CanExecute(object parameter) => base.CanExecute(parameter) && (CanExecuteEvent?.Invoke(parameter) ?? CanExecuteIfEventNotDefined);