2010-03-16 5 views
3

Je veux avoir ma propre classe TabItem de base et utiliser d'autres classes qui en dérivent.Comment ajouter TabItem dérivé de contrôle personnalisé à TabControl dans WPF?

I définit la classe de base dans l'espace de noms monen comme ceci:

public class MyCustomTab : TabItem 
{ 
    static MyCustomTab() 
    { 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomTab), new FrameworkPropertyMetadata(typeof(TabItem))); 
    } 
} 

Et c'est ce que je fais pour la classe qui hérite de celui-ci:

code-behind dans l'espace de noms de monen :

public partial class ActualTab : MyCustomTab 
{ 
    public ActualTab() 
    { 
     InitializeComponent(); 
    } 
} 

XAML:

<MyCustomTab x:Class="MyNs.ActualTab" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
<Grid> 

</Grid> 
</MyCustomTab> 

L'erreur que je reçois est « La balise « MyCustomTab »n'existe pas dans l'espace de noms XML « http://schemas.microsoft.com/winfx/2006/xaml/presentation » ». Si j'utilise la balise TabItem dans XAML, l'erreur indique qu'il n'est pas possible de définir différentes classes de base.

Comment résoudre ce problème?

Répondre

0

Ok, je suis stupide, il aurais été

<MyNs:MyCustomTab x:Class="MyNs.ActualTab" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:MyNs="clr-namespace:MyNs"> 
<Grid> 

</Grid> 
</MyNs:MyCustomTab> 
Questions connexes