私のWPFプロジェクトでは、少し複雑なコントロールがあります。このプロジェクトでは、MainWindowのほかにControls(すべてテンプレート化されています)を使用します。 (テンプレートが適用されて、内容物を充填された後のレイアウトを示す)私は、次のレイアウトを有する1つの画面でテンプレートコントロールの親をタイプ(!)(wpf)で見つけることができません
:
MyScreenControl
-MyTableControl
--ItemsControl
--- HeaderItemsControl
- ---- HeaderItemsControl.Header
------ MyHeaderControl
----- HeaderItemsControl.Items
------ MyItemControl
------ MyItemC ontrol
------クリックイベントがMyHeaderControlまたはMyItemControlから来た場合、私は決定したいOnMouseLeftButtonDown方法でMyItemControl
...
私はScreenControlのコードファイルによ、 。
MouseButtonEventArgsのSourceはScreenControlで、OriginalSourceはMyItemControl/MyHeaderControlのテンプレート内のTextBlockです。
MyItemControl/MyHeaderControlを最初に見つけようとするのは、OriginalSourceから始まり、再帰的にParentプロパティの型を調べることでした。テンプレート(この場合はViewBox)のルートに到達するまではうまく動作しますが、ルートには親要素がありません。
これまでの私の以前のプロジェクトでは、このようなメソッドを使用していましたが、その後はコントロールやテンプレートではなくUserControlsで作業していました。
どのように私はこの問題にアプローチする必要があります(良いアイデアはコードとしても歓迎です)?できるようになる
THX、 Tenshiko
を時々子供がロードされていないまで、親を探すために役立つことができます。たとえば、yourChild.Loadedイベント – peter70