通过Click Click

时间:2017-10-19 09:42:19

标签: c# wpf menu nullreferenceexception menuitem

我希望点击它来获取MenuItem名称。

据我所知,我的Menu中有两个MenuItem(正如您所见)。

XAML:

<DockPanel Margin="0,-17,0,0">
    <Menu DockPanel.Dock="Top">
        <MenuItem Header="_Optionen">
            <MenuItem Name="MI_1" Header="MI 1" Click="Set_MI"/>
            <MenuItem Name="MI_2" Header="MI 2" Click="Set_MI"/>
        </MenuItem>
    </Menu>
    <StackPanel></StackPanel>
</DockPanel>

C#:

private void Set_MI(object sender, RoutedEventArgs e)
{
    var MI = sender as MenuItem;
    switch (MI.Name)

我尝试转换object sender中的MenuItem,这会引发我的错误:

  

错误显示在Switch(MI.Name)

     

System.NullReferenceException:&#34;对象引用未设置为对象实例。&#34;

     

&#34; MI&#34;是&#34; null&#34;

顺便说一下。我不知道ToolStripMenuItem是什么意思。

是否有任何propper解决方案可以转换object sender中的MenuItem /点击MenuItem获取姓名?

1 个答案:

答案 0 :(得分:2)

确保您使用的是System.Windows.Controls.MenuItem,而不是其他类型的自定义MenuItem类型:

private void Set_Speicherpfade(object sender, RoutedEventArgs e)
{
    var MI = sender as System.Windows.Controls.MenuItem;
    if (MI != null)
    {
        switch (MI.Name)
        {
            ...
        }
    }
}