2009-07-31 7 views
0

je la simple sous-classe TextBox suivante, qui ajoute une propriété de dépendance (OutputIndex):TypeInitializationException lors de l'initialisation d'une sous-classe avec une propriété de dépendance

public class OutputTextBox : TextBox 
{ 
    public OutputTextBox() : base() { } 

    public int OutputIndex 
    { 
     get { return (int)this.GetValue(OutputIndexProperty); } 
     set { this.SetValue(OutputIndexProperty, value); } 
    } 

    public static readonly DependencyProperty OutputIndexProperty = DependencyProperty.Register(
     "OutputIndex", 
     typeof(int), 
     typeof(OutputTextBox), 
     new PropertyMetadata(false)); 
} 

Lorsque je tente de créer une instance de OutputTextBox, comme

OutputTextBox otb = new OutputTextBox(); 

Je reçois un System.TypeInitializationException jeté à la InnerException dire: "Le type de valeur par défaut ne correspond pas au type de propriété 'OutputIndex'. "

Qu'est-ce que « Type Valeur par défaut » est la InnerException référence? Que dois-je faire pour pouvoir instancier une instance de OutputTextBox

?

Répondre

2

Votre PropertyMetadata est réglé pour initialiser OutputIndex avec une valeur par défaut de faux. faux est un booléen, OutputIndex est un entier, d'où l'exception du type.

Passer un argument entier à PropertyMetadata, ou laisser le champ vide sans valeur par défaut.

+0

Bien sûr - merci! C'est ce que je fais pour couper et coller sans lire la documentation en détail. –

Questions connexes