Đây là mã của tôi từ View.xaml.cs:Làm cách nào để bạn liên kết lệnh với MenuItem (WPF)?
private RelayCommand _closeCommand;
public ICommand CloseCommand
{
get
{
if (_closeCommand == null)
{
_closeCommand = new RelayCommand(param => this.OnClose());
}
return _closeCommand;
}
}
public void OnClose()
{
Close();
}
Và đây là một số mã từ View.xaml tôi:
<Window.ContextMenu>
<ContextMenu>
<MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
</ContextMenu>
</Window.ContextMenu>
Khi tôi chạy chương trình và chọn mục trình đơn gần , chẳng có gì xảy ra. Mã CloseCommand thậm chí không được thực thi.
Bạn đã đặt DataContext chưa? –
Tôi đã tìm ra giải pháp cho vấn đề của mình. Tôi đã sử dụng một ViewModel mà có một tài sản trong đó là một loại ViewModel và tôi cần phải phạm vi xuống đó bằng cách làm điều này: 'Command =" {Binding ActiveVM.CloseCommand} "' –
Tôi đã tìm thấy một giải pháp cho câu hỏi của bạn [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