2009-10-01 3 views
8

Я новичок в WPF и создал пользователь WPF библиотеки управленияМОФА управление пользователем проблем базового класса

я добавил класс Base, который выглядит, как этот

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" /> 

Погрешность вы получаете это потому, что использование UserControl в XAML говорит компилятор, чтобы произвести частичный класс, наследующий от UserControl, вместо наследования с вашего класса.

2

Вы можете полностью удалить ": Tcontrol":

public partial class Notification : TControl 
{ 
} 

и написать:

public partial class Notification 
{ 
} 

вместо этого, так как базовый класс определен в XAML части, как Павел писал.

+0

Совершенно верно, я оставил его там, однако, чтобы напомнить мне, что он не просто наследуется от usercontrol. TControl еще ничего не делает, но может и в будущем – aaron

+1

Кроме того, я бы не использовал венгерскую нотацию (TControl, а не Control), в отличие от Delphi, она не рекомендуется на C# (или Java или C++). В Delphi это требуется только потому, что язык не чувствителен к регистру. –

Смежные вопросы