我有以下简单的 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的实例?
答案 0 :(得分:2)
您的 PropertyMetadata 设置为初始化OutputIndex,默认值为 false 。 False是一个布尔值,OutputIndex是一个int,因此是类型异常。
将整数参数传递给 PropertyMetadata ,或将其留空以获取默认值。