Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF:带有内容区的菜单,菜单项是否单击?_C#_Wpf - Fatal编程技术网

C# WPF:带有内容区的菜单,菜单项是否单击?

C# WPF:带有内容区的菜单,菜单项是否单击?,c#,wpf,C#,Wpf,我想要一个字典,这样我就可以在菜单中显示键,当有人单击菜单项时,相应的SomeView被注入ContentControl 我有: <Menu Name="menu"/> <ContentControl Name="content"/> 以及: 公共部分类测试窗口:窗口 { Dictionary menuItems=新字典(); 公共测试窗口() { 初始化组件(); 添加(“登录”,new TextBlock(){Text=“登录”}); Add(“register

我想要一个
字典
,这样我就可以在菜单中显示键,当有人单击菜单项时,相应的
SomeView
被注入
ContentControl

我有:

<Menu Name="menu"/>
<ContentControl Name="content"/>

以及:

公共部分类测试窗口:窗口
{
Dictionary menuItems=新字典();
公共测试窗口()
{
初始化组件();
添加(“登录”,new TextBlock(){Text=“登录”});
Add(“register”,newtextblock(){Text=“sign up”});
menu.ItemsSource=menuItems.Keys;
}
}
如何获取菜单项click事件并获取该菜单项的相应字符串

如果您使用的是MVVM,那么这不是正确的方法

Xaml:

public partial class TestWindow : Window
{
    Dictionary<string, TextBlock> menuItems = new Dictionary<string,TextBlock>();

    public TestWindow()
    {
        InitializeComponent();
        menuItems.Add("sign-in", new TextBlock(){Text="sign in"});
        menuItems.Add("register", new TextBlock(){Text="sign up"});

        menu.ItemsSource = menuItems.Keys;
    }
}
<Menu >
        <Menu.Resources>
            <Style TargetType="{x:Type MenuItem}">
                <EventSetter Event="Click" Handler="ContextMenuClick" />
            </Style>
        </Menu.Resources>
            <MenuItem Header="_File" Name="File">
                <MenuItem Name="Hello" Header="_Hello"/>
                <MenuItem Name="Never" Header="_Never"/>
                <MenuItem Name="Do" Header="_Do "/>
                <MenuItem Name="This" Header="_This"/>
            </MenuItem>
    </Menu>
private void ContextMenuClick(object sender, RoutedEventArgs e)
    {
        MessageBox.Show(string.Format("MyContent:{0}", ((MenuItem) sender).Name));
    }