我有一些用于所有用户控制的常用部件。它在界面中定义,比如MyInterface。
然后我在一个类中实现它的一部分,比如说MyBaseClass:
class MyBaseClass : MyInterface
{
//......
}
然后当我创建一个用户控件时,我希望这个用户控件具有执行的通用部分。所以我想将MyControl后面的代码更改为:
public partial class MyControl : UserControl, MyBaseClass
{
public MyControl()
{
InitializeComponent();
}
}
但系统会给我错误。原因:Mybase不是部分类。如果将MyBaseClass更改为partial,仍会让错误说“不允许多基类”。
一种解决方案就像
public partial class MyUserControl : UserControl, MyInterface
{
public MyUserControl ()
{
InitializeComponent();
}
}
但这会导致每个用户控件的重复实现。许多副本和糊。我不想这样。
尝试以下方式:
public class MyBaseClass : UserControl, MyInterface
或
public partial class MyBaseClass : UserControl, MyInterface
我收到了错误: “MyUserControl”的部分声明不得指定不同的基类
如何解决这个问题?
答案 0 :(得分:0)
我建议你这样做: -
public class MyBaseClass : UserControl, MyInterface
你尝试了但是有一个转折点。然后,当您从此创建派生的“UserControl”时,从标准Usercontrol开始,然后将代码隐藏文件更改为: -
public partial class MyDerivedClass : MyBaseClass
和强>
将Xaml更改为: -
<local:MyBaseClass x:Class="MyNamespace.MyDerivedClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace"
>
<Grid x:Name="LayoutRoot" Background="White">
</Grid>
</local:MyBaseClass>