static void OnButtonBaseClick(object sender, RoutedEventArgs e) { ButtonBase btn = sender as ButtonBase; ICommand cmd = ButtonBaseExtensions.GetCommand(btn); object parameter = ButtonBaseExtensions.GetCommandParameter(btn); if (cmd != null && cmd.CanExecute(parameter)) { cmd.Execute(parameter); } }
static void OnCommandParameterChanged(DependencyObject obj, DependencyPropertyChangedEventArgs e) { ButtonBase btn = obj as ButtonBase; if (btn == null) { throw new ArgumentException("You must set the CommandParameter attached property on an element that derives from ButtonBase."); } ICommand cmd = ButtonBaseExtensions.GetCommand(btn); if (cmd == null) { return; } object parameter = ButtonBaseExtensions.GetCommandParameter(btn); btn.IsEnabled = cmd.CanExecute(parameter); }