Прежде всего, я нахожусь в самом начале WPF и шаблона MVVM.Как использовать метод CanExecute из ICommand в WPF
При попытке выполнить некоторые пользовательские команды мне было интересно, как использовать CanExecute Methode из интерфейса ICommand.
В моем примере у меня есть SaveCommand, у которого есть только то, что нужно включить, когда объект можно сохранить. XAML код моего SaveButton выглядит следующим образом:
<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 выглядит следующим образом:
public ICommand SaveCommand
{
get
{
saveCommand = new Save(this);
return saveCommand;
}
set
{
saveCommand = value;
}
}
Эта конструкция не сработала. Кнопка не активирует ее, когда isSaveable является истинным.