Исключение TypeInitializationException при инициализации подкласса свойством зависимости

StackOverflow https://stackoverflow.com/questions/1213907

  •  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, или оставьте его пустым без значения по умолчанию.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top