IComponentConnector.InitializeComponent

WPFのInitializeComponentの正体は、IComponentConnector.InitializeComponentの模様。

IComponentConnector.InitializeComponent Method (System.Windows.Markup) | Microsoft Docs

ちゃんとインターフェースとして定義されてる。

WPFアプリケーション
WPFアプリケーション

WPFアプリケーションで、

Labelを配置
Labelを配置

Labelを配置。

コードの表示
コードの表示

コードの表示で、

定義へ移動
定義へ移動

いったんプロジェクトをビルドしてから、InitializeComponentの定義へ移動。

定義されてる
定義されてる

自動生成されたWindow1.g.i.csに定義されていた。
このメソッド自体の中身はXAMLのロードなどをしている模様。

IComponentConnectorを実装している
IComponentConnectorを実装している

確かに、このクラスはIComponentConnectorを実装している

label1に"ABC"
label1に"ABC"

試しに、label1に"ABC"をセットしてみる。

反映されない
反映されない

反映されない。

ビルド時に自動再生成
ビルド時に自動再生成

ビルド時に自動再生成されるから当然か。

InitializeComponentをコメント
InitializeComponentをコメント

コメントしたらどうなるだろうか。

XAMLはロードされてる
XAMLはロードされてる

XAMLはロードされてる。
どういうことだろうか。
まあ、InitializeComponentの正体がわかっただけいいか。

Sample/wpf/IComponentConnector/InitializeComponent/src/IComponentConnector_ at master · bg1bgst333/Sample · GitHub