我已经有了以下内容:
var myContextMenu = new System.Windows.Controls.ContextMenu();
var exitItem = new MenuItem();
exitItem.Header = "E_xit";
exitItem.Item.Click += new RoutedEventHandler(new System.EventHandler(ExitProgram));
myContextMenu.Items.Add(exitItem);
Run Code Online (Sandbox Code Playgroud)
这会导致我的上下文菜单显示退出菜单项,并带有下划线“x”。但是,按 x 没有任何作用。单击菜单项工作正常。
如何将事件与 x 键关联?请注意,这必须在我的上下文中以编程方式完成。我无法在前面的 XAML 中编写此解决方案。
在后代类中,有没有办法调用public,参数化构造函数以及protected/private构造函数,同时仍然调用基类的构造函数?
例如,给出以下代码:
using System;
public class Test
{
void Main()
{
var b = new B(1);
}
class A
{
protected A()
{
Console.WriteLine("A()");
}
public A(int val)
: this()
{
Console.WriteLine("A({0})", val);
}
}
class B : A
{
protected B()
{
Console.WriteLine("B()");
}
public B(int val)
: base(val)
{
Console.WriteLine("B({0})", val);
}
}
}
Run Code Online (Sandbox Code Playgroud)
给出的输出是:
A()
A(1)
B(1)
Run Code Online (Sandbox Code Playgroud)
但是,这正是我所期待的:
A()
B()
A(1)
B(1)
Run Code Online (Sandbox Code Playgroud)
有没有办法通过构造函数链来实现这一目标?或者我应该有一个OnInitialize()类型方法,A它是抽象的还是虚拟的,它被覆盖B并从受保护的无参数构造函数中调用A?