初始化具有依赖项属性的子类时的TypeInitializationException

时间:2009-07-31 17:42:18

标签: wpf dependency-properties

我有以下简单的 TextBox子类添加一个依赖属性(OutputIndex):

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

我得到一个带有InnerException的 System.TypeInitializationException :“默认值类型与属性'OutputIndex'的类型不匹配。

什么'默认值类型'是InnerException引用的?我需要做什么才能实例化OutputTextBox的实例?

1 个答案:

答案 0 :(得分:2)

您的 PropertyMetadata 设置为初始化OutputIndex,默认值为 false 。 False是一个布尔值,OutputIndex是一个int,因此是类型异常。

将整数参数传递给 PropertyMetadata ,或将其留空以获取默认值。