InitializeComponent
привязывает дочерние элементы управления, определенные в XAML (с атрибутом x:Name
), к полям, определенным в классе. Итак, вы должны иметь InitializeComponent
в классе, который использует XAML для определения. Вы не можете сделать это в базовом классе, потому что он не знает этих полей. (Кроме того, InitializeComponent
анализирует XAML и создает визуальные элементы, но это пока не важно).
Это означает, что если ваш элемент управления определен с помощью XAML, у вас должен быть InitializeComponent. Если вы не используете XAML (а просто переопределяете что-то в конструкторе или добавляете некоторые свойства / функции), вам не нужен InitializeComponent.