Ich baue eine einfache Dateneingabe-App in WPF-Form mit dem MVVM-Muster. Jedes Formular hat ein Presenter-Objekt, das alle Daten usw. freigibt. Ich möchte WPF-Befehle zum Aktivieren und Deaktivieren der Schaltflächen Bearbeiten/Speichern/Löschen und Menüoptionen verwenden.WPF-Befehle - Doing it no code-behind
Mein Problem ist, dass dieser Ansatz erfordert, dass ich viel Code zum Code-Behind hinzufügen. Ich versuche, meine Präsentationsschicht so dünn wie möglich zu halten, daher würde ich eher meinen, dass dieser Code/diese Logik in meiner Presenter (oder ViewModel) -Klasse statt in Code-Behind war. Kann jemand einen Weg vorschlagen, dasselbe ohne Code-Behind zu erreichen?
Meine XAML sieht ein bisschen wie folgt aus:
<Window.CommandBindings>
<CommandBinding
Command="ApplicationCommands.Save"
CanExecute="CommandBinding_CanExecute"
Executed="CommandBinding_Executed"
/>
</Window.CommandBindings>
und mein Code-behind sieht ein bisschen wie folgt aus:
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = (
_presenter.SelectedStore != null &&
_presenter.SelectedStore.IsValid);
}
Great Link - Prost! –