WPF Control: где находится виртуальная функция OnLoaded? - PullRequest
10 голосов
/ 04 июля 2011

В элементе управления WinForm есть виртуальная функция OnLoaded, но, похоже, ее нет в элементе управления WPF. Я нашел эту функцию очень полезной в некоторых ситуациях. Например, я мог бы сделать что-то здесь после того, как элемент управления «полностью» инициализирован. В элементе управления WPF есть виртуальная функция OnInitialized, но эта функция вызывается из функции InitializeComponent, которая является слишком ранней и не позволяет настроить производный класс. Есть ли причина не использовать эту функцию в WPF? Или я что-то пропустил?

Ответы [ 2 ]

7 голосов
/ 04 июля 2011

Вы можете присоединиться к событию Loaded вашего объекта Window и делать то, что вы хотите делать внутри обработчика событий (при условии, что вы используете c #):

public MyWindow() //constructor
{
  this.Loaded += MyWindow_Loaded;
}

private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
  // do your stuff here
}
1 голос
/ 04 июля 2011

вы будете искать FrameworkElement.EndInit ()

Это будет работать после процесса инициализации элемента ...

...