Oto mój kod z View.xaml.cs:Jak powiązać polecenie z MenuItem (WPF)?
private RelayCommand _closeCommand;
public ICommand CloseCommand
{
get
{
if (_closeCommand == null)
{
_closeCommand = new RelayCommand(param => this.OnClose());
}
return _closeCommand;
}
}
public void OnClose()
{
Close();
}
A oto niektóre kodu z mojego View.xaml:
<Window.ContextMenu>
<ContextMenu>
<MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
</ContextMenu>
</Window.ContextMenu>
Kiedy uruchomić program i wybrać pozycję menu bliskie , nic się nie dzieje. Kod CloseCommand nawet nie zostanie wykonany.
Czy ustawiłeś DataContext? –
Znalazłem rozwiązanie mojego problemu. Używałem ViewModel, który miał właściwość w nim, który był inny typ ViewModel i musiałem zasięg do tego propery, wykonując to: 'Polecenie =" {Wiążące ActiveVM.CloseCommand} "' –
Znalazłem rozwiązanie twojego pytania [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