Hier ist mein Code aus dem View.xaml.cs:Wie binden Sie einen Befehl an ein MenuItem (WPF)?
private RelayCommand _closeCommand;
public ICommand CloseCommand
{
get
{
if (_closeCommand == null)
{
_closeCommand = new RelayCommand(param => this.OnClose());
}
return _closeCommand;
}
}
public void OnClose()
{
Close();
}
Und hier ist ein Code von meinem View.xaml:
<Window.ContextMenu>
<ContextMenu>
<MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
</ContextMenu>
</Window.ContextMenu>
Wenn ich das Programm ausführen, und wählen Sie den Menüpunkt Beenden , nichts passiert. Der CloseCommand-Code wird nicht einmal ausgeführt.
Haben Sie den DataContext festgelegt? –
Ich habe die Lösung für mein Problem gefunden. Ich benutzte ein ViewModel, das eine Eigenschaft hatte, die ein anderer ViewModel-Typ war, und ich musste auf diese Eigenschaft beschränken, indem ich Folgendes tat: 'Command =" {Binding ActiveVM.CloseCommand} "' –
Ich habe eine Lösung für Ihre Frage gefunden [http://stackoverflow.com/questions/898852/specify-command-for-menuitem-in-a-datatemplate/18362041#18362041][1] [1]: http: // Stackoverflow. com/questions/898852/specify-command-for-menuitem-in-a-datatemplate/18362041 # 18362041 – Jacksquad