C# 在多级继承WPF C中调用构造函数#
在wpf窗口中调用基构造函数时遇到问题:C# 在多级继承WPF C中调用构造函数#,c#,wpf,inheritance,C#,Wpf,Inheritance,在wpf窗口中调用基构造函数时遇到问题: public class TemplateWindow : Window //Template window class { public TemplateWindow (int no) { } } public partial class MainView : TemplateWindow { public MainView() : base(1) //error here { Initiali
public class TemplateWindow : Window //Template window class
{
public TemplateWindow (int no)
{
}
}
public partial class MainView : TemplateWindow
{
public MainView() : base(1) //error here
{
InitializeComponent();
}
}
它在指定的位置给了我一个错误,因为它显然试图用base调用窗口构造函数。MainView类是xaml窗口的代码隐藏
然而,当我像下面这样测试这个问题时,它工作得非常好
class A //Base Class
{
public A() { }
}
class B : A
{
public B(int no) { }
}
partial class C : B
{
public C() : base(1) { }
}
我做错了什么?您在XAML中定义了
MainView
类,不是吗?可能是这样的:
<Window x:Class="MyNamespace.MainView" ... >
...
</Window>
但这会给你带来另一个问题:现在,突然之间,你不能使用可视化设计器了
这是因为设计器无法创建TemplateWindow
类的实例进行编辑。为什么?当然,因为TemplateWindow
没有默认构造函数
因此,要使这类工作正常,您只需在TemplateWindow
中定义两个构造函数——一个默认构造函数,另一个接受int
祝你好运。这是你的答案
你应该公布它给你的实际错误。同意w/Gabe;请发布堆栈跟踪。是的,我现在看到我的问题了。但我该如何应对呢?谢谢,它证实了费奥多尔·索金在上面发布的内容
<my:TemplateWindow
xmlns:my="MyNamespace"
x:Class="MyNamespace.MainView" ... >
...
</my:TemplateWindow>