0

我有以下简单的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();

我得到一个System.TypeInitializationException抛出 InnerException 说:“默认值类型不匹配属性类型'OutputIndex'。

InnerException 指的是什么“默认值类型” ?我需要做什么才能实例化 OutputTextBox 的实例?

4

1 回答 1

2

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

将整数参数传递给PropertyMetadata,或者将其留空以表示没有默认值。

于 2009-07-31T17:51:41.623 回答