从由字符串定义的 WPF MenuItem 创建点击事件
Create click event from WPF MenuItem defined by a string
我用一个字符串数组定义了菜单的一部分,我想为每个菜单自动创建点击事件。他们都要做同样的事情,只是参数不同。
string[] goTos = new string[] { "First", "Second", "Third" };
初始化 window 时:
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);
}
如何获得这些点击事件?
你可以试试这个
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();
}
如果他们是 "going to to the same thing"
我建议你使用
<MenuItem Name="MenuItems" Header="Item1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:CallMethodAction TargetObject="{Binding}"MethodName="Event"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
在您的视图上并将事件方法添加到您的视图模型
如果您的项目不使用 MVVM,这是学习的最佳时机。
我用一个字符串数组定义了菜单的一部分,我想为每个菜单自动创建点击事件。他们都要做同样的事情,只是参数不同。
string[] goTos = new string[] { "First", "Second", "Third" };
初始化 window 时:
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);
}
如何获得这些点击事件?
你可以试试这个
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();
}
如果他们是 "going to to the same thing"
我建议你使用
<MenuItem Name="MenuItems" Header="Item1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:CallMethodAction TargetObject="{Binding}"MethodName="Event"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
在您的视图上并将事件方法添加到您的视图模型
如果您的项目不使用 MVVM,这是学习的最佳时机。