2010-02-06 5 views
0

J'ai besoin d'une propriété de dépendance supplémentaire à un contrôle, donc je l'écrase. I.E .:Comment ajouter un contrôle hérité à un datatemplate dans WPF?

namespace Custom_TextBlock_Sample 
{ 
    public class CustomLabel: Label 
    { 

    } 
} 

Mais il semble que je ne puisse pas l'ajouter à un DataTemplate. Le code suivant échouera à construire:

... xmlns:Custom_TextBlock_Sample="clr-namespace:Custom_TextBlock_Sample" ... 

    <DataTemplate x:Key="Test"> 
     <Grid> 
     <Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel> 
     </Grid> 
    </DataTemplate> 

Cependant insérer mon contrôle surchargée partout ailleurs, (par exemple pas dans le DataTemplate) .. et la compilation fonctionne sans problème.

Les travaux suivants: (Mon contrôle n'est pas imbriqué dans un modèle de date).

<Grid> 
     <Custom_TextBlock_Sample:CustomLabel></Custom_TextBlock_Sample:CustomLabel> 
    </Grid> 

en utilisant également une étiquette régulière dans le datatemplate fonctionne aussi:

<DataTemplate x:Key="Test"> 
    <Grid> 
    <Label/> 
    </Grid> 
</DataTemplate> 

Toutes les idées sur ce que la question pourrait être? Puis-je simplement ne pas ajouter de contrôles remplacés aux datatemplates dans un tel manoir? Est-ce un bug dans Visual Studio 2007?

Notez que puisque mon intention de changer le contrôle sera petite, je veux simplement remplacer "Label" au lieu de l'encapsuler dans un UserControl.

Merci

+0

Cela fonctionne très bien pour moi et rien ne semble mal avec le code que vous mettez ici. Quelle est l'erreur de compilation que vous obtenez? Un problème possible pourrait être si vous héritez de la mauvaise classe Label. Vérifiez les instructions using dans votre fichier CustomLabel (par exemple Label dans System.Reflection.Emit qui est scellé et ne compilera donc pas). –

Répondre

0

Ok, compris. Cela semble être un bogue d'espace de noms avec Visual Studio. Le problème s'est résolu, quand j'ai commencé un nouveau projet à partir de zéro, cette fois sans espaces dans le nom du projet et pas de "_" dans les noms d'espaces de noms.

Questions connexes