通过点击事件获取菜单项名称
Get MenuItem Name by Click Event
我想通过单击获得 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
,这引发了我这个错误:
The error Shows up at Switch (MI.Name)
System.NullReferenceException: "The object reference was not set to an object instance."
"MI" is "null"
顺便说一句。我不知道 ToolStripMenuItem
是什么意思。
是否有任何正确的解决方案来将 object sender
转换为 MenuItem
/ 通过单击 MenuItem
获取名称?
确保您转换为 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)
{
...
}
}
}
我想通过单击获得 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
,这引发了我这个错误:
The error Shows up at Switch (MI.Name)
System.NullReferenceException: "The object reference was not set to an object instance."
"MI" is "null"
顺便说一句。我不知道 ToolStripMenuItem
是什么意思。
是否有任何正确的解决方案来将 object sender
转换为 MenuItem
/ 通过单击 MenuItem
获取名称?
确保您转换为 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)
{
...
}
}
}