2009-10-01 10 views
8

Soy nuevo en WPF y han creado un WPF usuario de la biblioteca de controlWPF control de usuario problema de clase base

añadí una clase base que tiene este aspecto

public class TControl : UserControl 
{ 
} 

y que todos mis controles para heredar de eso.

Tengo un control denominado Notificación que se parece a

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

funciona bien, excepto cuando cada vez que recompilar la clase parcial oculta donde se define InitializeComponent() obtiene regenerado y hereda de System.Windows.Controls.UserControl

esto me da una

declaraciones parciales de 'Twac.RealBoss.UserControls.Notification' no debe especificar diferentes clases base

error,

hay alguna forma de obligar a la clase generada a heredar de mi clase base?

Respuesta

21

su archivo XAML probablemente tiene:

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

trate de cambiar esto:

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

El error que está recibiendo es porque el uso de control de usuario en el XAML le dice al compilador para producir una parcial clase que hereda de UserControl, en lugar de heredar de tu clase.

2

Puede eliminar por completo el ": TControl":

public partial class Notification : TControl 
{ 
} 

y escribir:

public partial class Notification 
{ 
} 

lugar, ya que la clase base se define en la parte XAML, como escribió Pablo.

+0

Absolutamente correcto, lo dejé allí sin embargo para recordarme que no solo hereda de usercontrol. TControl aún no hace nada, pero podría en el futuro – aaron

+1

Además, no utilizaría la notación húngara (TControl, en lugar de Control), a diferencia de Delphi, no se recomienda en C# (o Java o C++). En Delphi solo es necesario, ya que el lenguaje no distingue entre mayúsculas y minúsculas. –

Cuestiones relacionadas