创建派生自抽象基类的UserControl,并为其指定X:Name?

时间:2020-01-23 08:27:14

标签: c# wpf xaml abstract

我有一个从抽象基类派生的非抽象用户控件,因此我必须使用XAML代码中的抽象基类作为基类。就类型继承和类实例性而言,这是有效的c#代码。设计师似乎对此有疑问:

MC3054:类型“ MyAbstractClass”不能具有Name属性。值类型和没有默认构造函数的类型可以用作ResourceDictionary内的项目

我具有以下类型层次结构:

public interface IMyInterface { void Init(); }

public abstract class MyAbstractClass: UserControl, IMyInterface
{ public abstract void Init(); }

public MyDerivedClass: MyAbtractClass
{ public void Init() {} }

以及下面的xaml部分

< local:MyAbstractClass x:Name="myObject" x:Class="MyDerivedClass"
                       xmlns:local="clr-namespace:MyNameSpace" >
...

编译时,我从标题中得到了MC3054错误。

将抽象类更改为非抽象类使其可以编译和执行。

为什么派生类不是抽象的时,为什么不能在xaml中使用抽象基类?

我的抽象类和派生类具有明确定义的默认构造函数。

0 个答案:

没有答案
相关问题