我想知道是否可以将项目点击事件分配给此上下文菜单,它将其放置在ResourceDictionary
类型的.Xaml文件中,其中一个没有代码隐藏在类之后,但我知道我可以手动为此.xaml分配.cs类。
但是我不想为它分配一个文件类,因为我已经有了另一个.Xaml文件,它有自己的.cs文件类,我想在其中注册itemClick事件。
我在resourcedictionary文件中的代码是:
<ContextMenu>
<MenuItem Header="Show SoundRecorder" Click="ItemClick"></MenuItem>
<Separator/>
<MenuItem Header="Start Recording Now"></MenuItem>
<MenuItem Header="Stop Recording"></MenuItem>
<Separator/>
<MenuItem Header="About"></MenuItem>
<MenuItem Header="Exit SoundRecorder"></MenuItem>
</ContextMenu>
我怎样才能实现这种方法?
答案 0 :(得分:2)
使用上下文菜单在视图的数据上下文中创建命令。
public ICommand ItemClickCommand{ get; set; }
然后,您可以将MenuItem的Command属性绑定到新命令。
<ContextMenu>
<MenuItem Header="Show SoundRecorder" Command="{Binding ItemClickCommand}"></MenuItem>
<Separator/>
<MenuItem Header="Start Recording Now"></MenuItem>
<MenuItem Header="Stop Recording"></MenuItem>
<Separator/>
<MenuItem Header="About"></MenuItem>
<MenuItem Header="Exit SoundRecorder"></MenuItem>
</ContextMenu>
在运行时,如果WPF在数据上下文中找到该命令,它将把菜单项绑定到它。否则,它将在输出控制台中发出警告。
我不会在这里实现ICommand
接口。有很多googlable实现。