Moin,
ich wollte eigentlich nur meine Application.Save Commands in meinem ViewModel verabeiten. Dabei überkam mich ein Gedanke der auch erstmal gar nicht schlecht klang, wenn auch nicht ganz kompatibel zum MVVM.
Ich wollte die Executed Eigenschaften der CommandBindings des Fensters an mein ViewModel binden; habe also den Datentyp nachgeguckt => ExecutedRoutedEventHandler und eine Property im VM erstellt, die einen entsprechenden Handler zurückgibt. Wenn
ich diese dann Binde kriege ich eine InvalidCastException mit der Nachricht "Das Objekt des Typs "System.Reflection.RuntimeEventInfo" kann nicht in Typ "System.Reflection.MethodInfo" umgewandelt werden.".
//XAML
<Window.CommandBindings>
<CommandBinding Command="Save" Executed="{Binding SaveCommandAction}"/>
</Window.CommandBindings>
//ViewModel
public ExecutedRoutedEventHandler SaveCommandAction => Save;
public void Save(object sender, ExecutedRoutedEventArgs e)
{
//Do Something...
}
Ich weiß, dass es Wege und Mittel gibt die Commands anders zu verarbeiten, aber mich interessiert jetzt gerade viel mehr, warum mein Ansatz nicht funktioniert. Ich kann mir aus der Konvertierung keinen Reim machen und warum die Executed Eigenschaft Bindungen
zulässt, wenn Sie dann doch nicht funktionieren^^
Vielleicht kennt ja jemand die Lösung.
Grüße halliba