C# 运行时启用/禁用WPF MVVM切换按钮

C# 运行时启用/禁用WPF MVVM切换按钮,c#,wpf,button,mvvm,icommand,C#,Wpf,Button,Mvvm,Icommand,我想将一个按钮设置为禁用,并在运行时当另一个方法将_canExecute字段设置为true时激活它。 不幸的是,我不知道如何触发此事件并更新视图。 CommandHandler类已实现RaiseCanExecuteChanged。但不清楚如何使用它 看法 命令处理程序 您可以向CommandHandler类添加如下方法: public void SetCanExecute(bool canExecute) { _canExecute = canExecute; RaiseCanE

我想将一个按钮设置为禁用,并在运行时当另一个方法将_canExecute字段设置为true时激活它。 不幸的是,我不知道如何触发此事件并更新视图。 CommandHandler类已实现RaiseCanExecuteChanged。但不清楚如何使用它

看法

命令处理程序


您可以向CommandHandler类添加如下方法:

public void SetCanExecute(bool canExecute)
{
    _canExecute = canExecute;
    RaiseCanExecuteChanged();
}
然后将ClickCommand属性的类型更改为CommandHandler

public CommandHandler ClickCommand => ...
打个电话就行了

ClickCommand.SetCanExecute(true);

只需更新命令的_canExecute字段并调用其RaiseCanExecutChanged方法。如果实现INotifyPropertyChanged,则可以将按钮的IsEnabledProperty绑定到ViewModel@DanieleSartori为什么?ICommand已经支持禁用控件。不需要另一种机制。@Clemens:不确定在何处/如何触发RaiseCanecuteChanged。太好了!期望值实现了。非常感谢。
public void SetCanExecute(bool canExecute)
{
    _canExecute = canExecute;
    RaiseCanExecuteChanged();
}
public CommandHandler ClickCommand => ...
ClickCommand.SetCanExecute(true);