动态 WPF 上下文菜单
dynamic WPF ContextMenu
我有 WPF 和动态上下文菜单。我有 menuitem1.click 和 menuitem2.click.
ContextMenu contextMenu = new ContextMenu();
MenuItem mItem1 = new MenuItem() { Header = "mItem1" };
mItem1.Click += new System.Windows.RoutedEventHandler(mItem1_Click);
MenuItem mItem2 = new MenuItem() { Header = "mItem2" };
mItem2.Click += new ystem.Windows.RoutedEventHandler(mItem2_Click);
现在当我打电话给
private void mItem_Click(object sender, RoutedEventArgs e)
{
//need to put mItem1.enabled=false and mItem2.Enabled = false
}
我该怎么做?我应该使用 contextMenu.Items 什么东西吗?
`
由于您是动态创建 MenuItem
对象,因此您可以使用两个私有字段保留对它们的引用。然后您可以直接在事件处理程序中访问它们:
public partial class MainWindow : Window
{
MenuItem mItem1;
MenuItem mItem2;
public MainWindow()
{
InitializeComponent();
ContextMenu contextMenu = new ContextMenu();
mItem1 = new MenuItem() { Header = "mItem1" };
mItem1.Click += new System.Windows.RoutedEventHandler(mItem1_Click);
mItem2 = new MenuItem() { Header = "mItem2" };
mItem2.Click += new System.Windows.RoutedEventHandler(mItem2_Click);
}
private void mItem1_Click(object sender, RoutedEventArgs e)
{
mItem1.IsEnabled = false;
}
private void mItem2_Click(object sender, RoutedEventArgs e)
{
}
}
另一种选择可能是使用匿名方法:
ContextMenu contextMenu = new ContextMenu();
MenuItem mItem1 = new MenuItem() { Header = "mItem1" };
MenuItem mItem2 = new MenuItem() { Header = "mItem2" };
mItem1.Click += (ss, ee) =>
{
mItem2.IsEnabled = false;
};
mItem2.Click += (ss, ee) =>
{
};
我有 WPF 和动态上下文菜单。我有 menuitem1.click 和 menuitem2.click.
ContextMenu contextMenu = new ContextMenu();
MenuItem mItem1 = new MenuItem() { Header = "mItem1" };
mItem1.Click += new System.Windows.RoutedEventHandler(mItem1_Click);
MenuItem mItem2 = new MenuItem() { Header = "mItem2" };
mItem2.Click += new ystem.Windows.RoutedEventHandler(mItem2_Click);
现在当我打电话给
private void mItem_Click(object sender, RoutedEventArgs e)
{
//need to put mItem1.enabled=false and mItem2.Enabled = false
}
我该怎么做?我应该使用 contextMenu.Items 什么东西吗? `
由于您是动态创建 MenuItem
对象,因此您可以使用两个私有字段保留对它们的引用。然后您可以直接在事件处理程序中访问它们:
public partial class MainWindow : Window
{
MenuItem mItem1;
MenuItem mItem2;
public MainWindow()
{
InitializeComponent();
ContextMenu contextMenu = new ContextMenu();
mItem1 = new MenuItem() { Header = "mItem1" };
mItem1.Click += new System.Windows.RoutedEventHandler(mItem1_Click);
mItem2 = new MenuItem() { Header = "mItem2" };
mItem2.Click += new System.Windows.RoutedEventHandler(mItem2_Click);
}
private void mItem1_Click(object sender, RoutedEventArgs e)
{
mItem1.IsEnabled = false;
}
private void mItem2_Click(object sender, RoutedEventArgs e)
{
}
}
另一种选择可能是使用匿名方法:
ContextMenu contextMenu = new ContextMenu();
MenuItem mItem1 = new MenuItem() { Header = "mItem1" };
MenuItem mItem2 = new MenuItem() { Header = "mItem2" };
mItem1.Click += (ss, ee) =>
{
mItem2.IsEnabled = false;
};
mItem2.Click += (ss, ee) =>
{
};