Ecco il mio codice dal View.xaml.cs:Come si associa un comando a un MenuItem (WPF)?
private RelayCommand _closeCommand;
public ICommand CloseCommand
{
get
{
if (_closeCommand == null)
{
_closeCommand = new RelayCommand(param => this.OnClose());
}
return _closeCommand;
}
}
public void OnClose()
{
Close();
}
Ed ecco qualche codice dal mio View.xaml:
<Window.ContextMenu>
<ContextMenu>
<MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
</ContextMenu>
</Window.ContextMenu>
Quando eseguo il programma e selezionare la voce di menu Chiudi , non accade nulla. Il codice CloseCommand non viene nemmeno eseguito.
Hai impostato il DataContext? –
Ho trovato la soluzione al mio problema. Stavo usando un ViewModel che aveva una proprietà in esso che era un altro tipo ViewModel e avevo bisogno di ricondurre a quello corretto facendo questo: 'Command =" {Binding ActiveVM.CloseCommand} "' –
Ho trovato una soluzione alla tua domanda [http://stackoverflow.com/questions/898852/specify-command-for-menuitem-in-a-datatemplate/18362041#18362041][1] [1]: http: // StackOverflow. it/questions/898852/specificare-comando-per-menuitem-in-a-datatemplate/18362041 # 18362041 – Jacksquad