Я сам боролся с этим и пришел к выводу, что единственный обходной путь, по-видимому, помимо создания подклассов (см. Ответ hjb417), состоял в том, чтобы сделать другую вкладку видимой. Переключение на другую вкладку и возврат к предыдущей непосредственно перед отображением формы не работает. Если вы не хотите видеть вторую вкладку, я использовал следующий код в качестве обходного пути:
this.tabControl.SelectedTab = this.tabPageB;
this.tabPageB.BindingContextChanged += (object sender, EventArgs e) => {
this.tabContainerMain.SelectedTab = this.tabPageA;
};
Предполагается, что tabPageA - видимая вкладка, а tabPageB - невидимая, которую вы хотите инициализировать. Это переключается на страницу B и переключается обратно после завершения привязки данных. Это невидимо для пользователя в форме.
Все еще безобразный хак, но по крайней мере это работает. Конечно, код становится еще хуже, когда у вас есть несколько вкладок.