2009-07-31 9 views
0

とサブクラスを初期化するとき、私は、1つの依存関係プロパティを追加する次のような単純なのTextBoxサブクラス、(OutputIndex)を持っている:TypeInitializationException依存プロパティ

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)); 
} 

私はOutputTextBoxのインスタンスをインスタンス化しようとすると、

OutputTextBox otb = new OutputTextBox(); 

のように私は投げSystem.TypeInitializationExceptionを取得しますInnerException say: "デフォルト値の型がプロパティ 'OutputIndex'の型と一致しません。は「のInnerExceptionは、私がOutputTextBoxのインスタンスをインスタンス化することができるように何をする必要がありますか?を参照している何『デフォルト値タイプ』

答えて

2

あなたPropertyMetadataはとOutputIndex初期化するために設定されていますのデフォルト値。falseはOutputIndexがint、したがって型例外で、boolean型である。

PropertyMetadataに整数の引数を渡す、あるいは全くのために、それは空白のままにデフォルト値。

+0

もちろん、ありがとう! これは、ドキュメントを詳細に読まずにカットアンドペーストするために得られるものです。 –