2
我创建一个WPF form.And菜单项的文本菜单,在运行时添加。 下面是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”的方法。我想要得到的coresponding指数在点击菜单item.But我无法给予名称或索引时,我将在上面method.Is有没有办法做到这一点的项目?
private void MenuItemViewNotes_Click(object sender, RoutedEventArgs e)
{
mainMenu.Items.Clear();
MenuItem mi = sender as MenuItem;
if (mi!= null)
{
MessageBox.Show(mi.Header.ToString());
}
}
在这里我没有得到任何出来put。我认为这可能是一些在处理中的错误。
再下面是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>
是的,我想这e.Source和e.OriginalSource.But后,他们给了我同样计数每个菜单源item.I需要获得不同的计数或索引,以便在运行时添加不同的菜单项。 – kalani 2011-04-08 03:29:21
不确定,然后交配 – 2011-04-08 07:40:26