タブ コントロールと、プログラムによって設定され、カスタム コントロールを含む多数のタブ項目があります。その時点で、各カスタム コントロールがインスタンス化initializeComponent
され、タブ コントロールが作成されるときにすべてのユーザー コントロールで呼び出されます。
一部のユーザーコントロールには膨大な量のデータが含まれている可能性があり、データベース接続を初期化する可能性があるため、これは悪い方法だと思います。これをできるだけ効率的にしたいと考えています。私がやりたいことは、各ユーザー コントロールが配置されているタブが実際に選択されてユーザーに表示されるまで、各ユーザー コントロールによって行われる作業の量を最小限に抑えることです。
掘り下げた後、この詳細が折りたたまれたコントロールの初期化を遅らせていることがわかりました。タブでこれを機能させることができましたが、さらに掘り下げた後、Loaded
とUnloaded
イベントを見つけることができました。initializeComponent
ユーザー コントロール コンストラクターから削除してLoaded
イベント ハンドラーに追加するだけで、遅延初期化を実現できますか?
unloaded
また、理想的には、イベントが発生したときに、次にイベントが発生するまで、ユーザーコントロールを初期化しないことですloaded
。initializeComponent 中に発生する xaml の読み込みを逆にする方法はありますか?
これは些細な答えではないかもしれませんが、ガイダンス/ヘルプをいただければ幸いです。
さらに情報が必要な場合はお知らせください。