У меня есть класс, который наследует класс TextBox
, назовите его MyTextBox
I ' Мне бы хотелось переопределить значение по умолчанию Background
для этого класса.
Я искал способ сделать это и нашел хороший вариант: вызов BackgroundProperty.OverrideMetadata ()
проблема в том, : где я могу поставить это?
в App.OnStartup ()
? Уродливо и непрактично, я бы хотел, чтобы это было в файле кода моего класса.
в конструкторе класса? Я получаю исключение:
PropertyMetadata уже зарегистрированы для типа MyTextBox.
(мне кажется, я понимаю, почему у меня это получается идеально)
Итак, я снова просмотрел информацию о статическом конструкторе в C # (раньше об этом не говорил, а жаль )
Итак, вот мой код:
public class MyTextBox : TextBox
{
static MyTextBox()
{
MyTextBox.BackgroundProperty.OverrideMetadata(typeof(MyTextBox), new FrameworkPropertyMetadata(App.Current.Resources["CustomBackgroundBrush"]));
}
}
, я очень доволен этим, но Microsoft нет. А именно, когда я использую функцию анализа кода, я получаю следующее:
CA1810: Инициализировать статические поля ссылочного типа inline
Отсюда мой вопрос: что я могу с этим сделать?
любые подсказки приветствуются, спасибо
Изменить: Я добавлю, что не совсем понимаю, почему я получаю это предупреждение, поскольку я ничего не инициализирую за говорят в моем статическом конструкторе, или я?