Исключение TypeInitializationException при инициализации подкласса свойством зависимости
-
06-07-2019 - |
Вопрос
У меня есть следующий простой Подкласс текстового поля, который добавляет одно свойство зависимости (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();
Я получаю Система.Исключение TypeInitializationException выдается с InnerException, говорящим:"Тип значения по умолчанию не соответствует типу свойства 'OutputIndex'."
Что "Тип значения по умолчанию" относится ли к InnerException?Что мне нужно сделать, чтобы иметь возможность создать экземпляр OutputTextBox?
Решение
Ваш PropertyMetadata Свойство metadata установлен для инициализации OutputIndex значением по умолчанию, равным ложь.False - это логическое значение, OutputIndex - это int, следовательно, тип exception .
Передайте целочисленный аргумент в PropertyMetadata Свойство metadata, или оставьте его пустым без значения по умолчанию.