如何使用界面中的CanExecute
方法?ICommand
在我的示例中,我有一个 SaveCommand,它只有在对象可保存时才启用。我的 Savebutton 的 XAML 代码如下所示:
<Button Content="Save" Command="{Binding SaveCommand, Mode=TwoWay}" />
这是我的保存类的代码:
class Save : ICommand
{
public MainWindowViewModel viewModel { get; set; }
public Save(MainWindowViewModel viewModel)
{
this.viewModel = viewModel;
}
public bool CanExecute(object parameter)
{
if (viewModel.IsSaveable == false)
return false;
return true;
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
viewModel.Save();
}
}
ViewModel 中的 save 属性如下所示:
public ICommand SaveCommand
{
get
{
saveCommand = new Save(this);
return saveCommand;
}
set
{
saveCommand = value;
}
}
这个构造不起作用。当 isSaveable 为 true 时,按钮不会启用其自身。