Wie verschiebe ich meinen RoutinedCommand-Handler von View-codebehind nach ViewModel?

8

Das folgende RoutedCommand-Beispiel funktioniert.

Die Behandlung der Schaltfläche, die den Befehl ausführt, befindet sich jedoch im Codebehind der Ansicht . So wie ich MVVM verstehe, sollte im ViewModel sein .

Wenn ich die Methode jedoch in das ViewModel verschiebe (und in public ändere), erhalte ich den Fehler " ManagedCustomersView enthält keine Definition von OnSave ". Selbst wenn ich den zweiten Parameter RoutedCommand in typeof (ManageCustomersViewModel) ändere, bekomme ich den gleichen Fehler.

Wie kann ich den Befehlshandler von View-codebehind in das ViewModel verschieben?

ManageCustomersView.xaml:

%Vor%

ManageCustomersView.xaml.cs:

%Vor%

Befehle.cs:

%Vor%     
Edward Tanguay 30.04.2009, 07:53
quelle

1 Antwort

8

Sie werden eine Eigenschaft Ihres ViewModels anzeigen, die auf den Befehl verweist.

%Vor%

Dann im XAML

%Vor%

Sie finden es jedoch möglicherweise einfacher, RelayCommand zu verwenden, damit Sie das tatsächliche definieren können Befehlslogik in Ihrem Modell auch.

    
Paul Alexander 30.04.2009, 07:56
quelle