为了保持ICommand能够正确地链接,并且不会在链接过程中被忽略,可以使用以下两种方法。
方法一: 1.在你的ViewModel中定义一个ICommand类型的属性,并且在属性的get方法中实例化一个ICommand对象。可以在构造函数中初始化。 2.通过重载ICommand的Execute和CanExecute方法来实现你的命令逻辑。注意,你需要在Execute和CanExecute方法中添加你的逻辑代码。 3.在你的XAML代码中,将你的命令绑定到你的UI元素上。例如,将你的按钮的Command属性绑定到你的ViewModel中的ICommand属性。
以下是一个示例ViewModel代码的例子:
public class MyViewModel { public ICommand MyCommand { get; }
public MyViewModel() { MyCommand = new CommandImplementation(ExecuteMyCommand, CanExecuteMyCommand); }
private void ExecuteMyCommand(object parameter) { // your command logic goes here }
private bool CanExecuteMyCommand(object parameter) { // your command validation logic goes here } }
以下是一个CommandImplementation类的实现代码:
public class CommandImplementation : ICommand
{
private readonly Action _execute;
private readonly Func
public CommandImplementation(Action execute, Func
public bool CanExecute(object parameter) { return _canExecute(); }
public void Execute(object parameter) { _execute(); }
public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } }
方法二: 你可以使用Prism库中的DelegateCommand和CommandManager类来保持ICommand链接。 以下是一个示例ViewModel代码的例子:
public class MyViewModel : BindableBase { private readonly DelegateCommand _myCommand;
public MyViewModel() { _myCommand = new DelegateCommand(ExecuteMyCommand,