我使用字符串数组定义菜单的部分,我想自动为每个菜单创建点击事件。所有这些都是相同的,只是一个不同的参数。
string[] goTos = new string[] { "First", "Second", "Third" };
初始化窗口时:
foreach (string item in goTos)
{
System.Windows.Controls.MenuItem goTo = new System.Windows.Controls.MenuItem();
goTo.Header = item;
goTo.Name = "mnu" + item;
mnuGoTo.Items.Add(goTo);
}
如何获取这些点击事件?
答案 0 :(得分:1)
如果他们是"去做同样的事情"
我建议你使用
<MenuItem Name="MenuItems" Header="Item1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:CallMethodAction TargetObject="{Binding}"MethodName="Event"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
在您的View上并将事件方法添加到Viewmodel
如果您不为项目使用MVVM,这是学习的最佳时机。
答案 1 :(得分:0)
你可以尝试这个
string[] goTos = new string[] { "First", "Second", "Third" };
foreach (string item in goTos)
{
System.Windows.Controls.MenuItem goTo = new System.Windows.Controls.MenuItem();
goTo.Header = item;
goTo.Name = "mnu" + item;
goTo.Click += new RoutedEventHandler(goTo_Click);
mnuGoTo.Items.Add(goTo);
}
}
void goTo_Click(object sender, RoutedEventArgs e)
{
throw new NotImplementedException();
}