Zuerst verwenden i gleich am Anfang von WPF und dem MVVM Pattern ist zu sagen.Wie die CanExecute Methode von ICommand auf WPF
Während einiger benutzerdefinierten Befehle versuchen, ich frage mich, wie die CanExecute Methode aus der ICommand-Schnittstelle zu verwenden.
In meinem Beispiel hat ich eine SaveCommand, die ich nur das, was ermöglichen, wenn das Objekt speicherbar ist. Der XAML-Code meiner Savebutton sieht wie folgt aus:
<Button Content="Save" Command="{Binding SaveCommand, Mode=TwoWay}" />
Dies ist der Code meiner speichern Klasse ist:
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();
}
}
Die speichern Eigenschaft im Ansichtsmodell sieht wie folgt aus:
public ICommand SaveCommand
{
get
{
saveCommand = new Save(this);
return saveCommand;
}
set
{
saveCommand = value;
}
}
Dieses Konstrukt hat nicht funktioniert. Die Schaltfläche aktiviert nicht seine selbst wenn isSaveable wahr ist.