2009-10-01 123 views
8

我是新来WPF和已经创建了一个WPF用户控件库WPF用户控件的基类问题

我添加了一个基类,看起来像这样

public class TControl : UserControl 
{ 
} 

,并希望我所有的控件继承从中。

我有一个控制称为通知它看起来像

public partial class Notification : TControl 
{ 
    public Notification() 
    { 
     InitializeComponent(); 
    } 

工作正常时除外以往我重新编译,其中的InitializeComponent()被定义被再生并从System.Windows.Controls.UserControl

继承了隐藏部分类

这给了我“Twac.RealBoss.UserControls.Notification”的

分部声明一定不能指定不同的基类

错误,

反正是有强制生成的类从我的基类继承?

回答

21

你的XAML文件可能有:

<UserControl x:Class="YourNamespace.Notification" .... > 

试试这个更改为:

<Whatever:TControl x:Class="YourNamespace.Notification" xmlns:Whatever="clr-namespace:YourNamespace" /> 

你所得到的,因为在XAML中使用用户控件的告诉编译器产生的部分错误继承自UserControl的类,而不是继承自类。

2

您可以完全删除 “:的TControl”:

public partial class Notification : TControl 
{ 
} 

写:

public partial class Notification 
{ 
} 

代替,因为基类的XAML部分定义,正如保罗写道。

+0

绝对正确,我把它留在那里但是提醒我它不只是继承自usercontrol。 TControl并没有做任何事情,但它可能在将来 – aaron 2009-10-02 01:58:40

+1

此外,我不会使用匈牙利符号(TControl,而不是控制),不像Delphi,它不推荐在C#(或Java或C++)中使用。在Delphi中它只是必需的,因为语言不区分大小写。 – 2009-10-03 20:48:21