含まれているTabControl
Prism 領域があります。特定のイベントに対して何らかの通知 (タブ ヘッダーの点滅など) をトリガーしたいのですが、Prism 領域のコンポーネントからこの通知をトリガーしたいと考えています。
このようなコンポーネントを含むタブが一度開かれると、これを使用VisualTreeUtil.GetParent()
してうまく機能し、それを見つけてTabControl
通知を示すように変更できるようになります。
VisualTreeUtil.GetParent()
しかし問題は、 null を返すため、ユーザーがタブを開くまでこれが機能しないことです。明らかに、Prism はそれまでビジュアル ツリーを接続しないためです。
領域を含む を呼び出しUpdateLayout()
てTabItem
も役に立ちません。ユーザーを混乱させるため、TabItems をプログラムで開きたくありません。
ある種の地域レジストリを実装する以外にできることはありますか (これはかなり醜く、維持するのが難しいでしょう)?
コードを見たい場合は、問題を示すための最小限の解決策を書きました。[構造を印刷] ボタンは、2 番目のタブの (最初はレンダリングされていない非表示の) hello TextBlockからビジュアル ツリーを上に移動しようとします。タブに切り替える前に、TextBlock のみを出力します。その後、ビジュアル ツリーのルートに到達します。これは、タブに切り替えずに達成したいことです。