这几乎等同于如何卡尔Shifflet证明一个
RelayCommand,其中
Execute火灾预定
Action<T>。如果您问我一个一流的解决方案。
public class RelayCommand : ICommand{ private readonly Predicate<object> _canExecute; private readonly Action<object> _execute; public RelayCommand(Predicate<object> canExecute, Action<object> execute) { _canExecute = canExecute; _execute = execute; } public event EventHandler CanExecuteChanged { add => CommandManager.RequerySuggested += value; remove => CommandManager.RequerySuggested -= value; } public bool CanExecute(object parameter) { return _canExecute(parameter); } public void Execute(object parameter) { _execute(parameter); }}然后可以用作…
public class MyViewModel{ private ICommand _doSomething; public ICommand DoSomethingCommand { get { if (_doSomething == null) { _doSomething = new RelayCommand( p => this.CanDoSomething, p => this.DoSomeimportantMethod()); } return _doSomething; } }}阅读更多:
Josh Smith(的介绍者
RelayCommand):模式-
具有MVVM设计模式的WPF应用



