我已经以wpf格式创建了一个上下文菜单。并且在运行时添加了菜单项。 以下是添加上下文菜单的XAML代码段:
<Window.ContextMenu>
<ContextMenu AllowDrop="True" VerticalContentAlignment="Top" Opened="note_Opened" >
<MenuItem Header="View Notes" Click="MenuItemViewNotes_Click" Name="mainMenu" />
...............................
</ContextMenu>
</Window.ContextMenu>
菜单项添加如下:
private void note_Opened(object sender, RoutedEventArgs e)
{
......... //some codes goes here
while(reader.Read()){
MenuItem newItem = new MenuItem();
newItem.Header = textEncrypt.DecryptString(reader[2].ToString());
// newItem.Click += new RoutedEventHandler(MenuItemViewNotes_Click);
mainMenu.Items.Add(newItem);
}
}
}
以下是“MenuItemViewNotes_Click”方法。我想得到点击的菜单项的相应索引。但是当我在上面的方法中添加项目时,我无法给出名称或索引。有什么方法可以做到这一点。 ?
private void MenuItemViewNotes_Click(object sender, RoutedEventArgs e)
{
mainMenu.Items.Clear();
MenuItem mi = sender as MenuItem;
if (mi!= null)
{
MessageBox.Show(mi.Header.ToString());
}
}
在这里,我没有得到任何出局。我认为即使处理也可能有些不妥。
以下是xaml代码,其中调用“note_opend”和“MainItemViewNotes_click”函数
<ContextMenu AllowDrop="True" VerticalContentAlignment="Top" Opened="note_Opened" >
<MenuItem Header="View Notes" Name="mainMenu" >
<MenuItem Header="note1" Click="MenuItemViewNotes_Click" IsCheckable="True"/>
</MenuItem>
<MenuItem Header="Settings" Click="MenuItemSettings_Click"/>
<MenuItem Header="Close" Click="MenuItemClose_Click"/>
</ContextMenu>
答案 0 :(得分:0)