OK, ich neige dazu Befehle zu vermeiden, weil sie es immer schaffen, die Hölle von mir zu verwirren, aber ich bin auf ein neues Projekt und versuche, es richtig zu gestalten, ohne Code auf meinem Aussicht. Im Grunde ist alles, was ich gerade versuche, ein Knopf zu drücken, der einen Befehl auslöst, der einige Dinge auf meinem Betrachtungsmodell tut, und irgendwie gibt etwas so einfaches mir immer noch Ärger. Ich denke, ich bin nah dran, komme aber nicht ganz hin. Hier ist, was ich gerade habe.Befehl zum Aufrufen der Methode aus ViewModel
<Window.Resources>
<RoutedUICommand x:Key="GetMusic" />
</Window.Resources>
<Window.DataContext>
<core:ViewMain />
</Window.DataContext>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource GetMusic}" Executed="GetMusicExecuted"/>
</Window.CommandBindings>
Und die Aussicht Modell ist so ziemlich nichts jetzt
public class ViewMain
{
public MusicCollection Music { get; set; }
private void GetMusicExecuted(object sender, ExecutedRoutedEventArgs e)
{
//Logic
}
}
Nun, was ich versuche, diesen Befehl zu tun, ist ein Draht von bis ich in meinem Kommando Bindungen einrichten nur meine ausgeführt Methode aufrufen In meinem Sichtmodell versucht es jedoch, diese Methode innerhalb der Sicht selbst zu finden. Gibt es einen Weg, wie ich es stattdessen auf die Methode in meinem Betrachtungsmodell richten kann, oder einen besseren Weg, dies einzurichten, um dasselbe zu erreichen? Ich hoffe, es zunächst einfach zu halten, damit ich nicht zu früh in die Gedanken komme.
Sie Setup benötigen die Bindung entweder über XAML oder Code hinter – uowzd01
Haben Sie DelegateCommands in Ihren Standard-MVVM-Frameworks wie Prism verwendet? Ich denke, es macht das Kommando viel einfacher, da sich Ihr Befehl in der VM befindet und Sie ihn binden können, ohne CommandBindings zu definieren. –