0

我想知道我是否可以将项目单击事件分配给这个上下文菜单,它被放置在一个类型为 .Xaml 的文件中,该文件ResourceDictionary没有类后面的代码,但是我知道我可以手动将一个 .cs 类分配给 this 。 xml。

但我不想为其分配文件类,因为我已经有另一个具有自己的 .cs 文件类的 .Xaml 文件,我想在其中注册 itemClick 事件。

我在资源字典文件中的代码是:

<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>

我怎样才能实现这种方法?

4

1 回答 1

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接口。有很多可谷歌搜索的实现。

于 2013-09-15T23:19:51.170 回答