お客様の1人が、WinForms .NETグリッドコントロールiGrid.NET(http://www.10tec.com/)を他のWPFコントロールと一緒にWPFElementHostコンテナー内でホストしています。WinFormsフォーム内のWPFホスト内のWinFormsコントロールであるため、奇妙に見えるかもしれませんが、使用する他のWPFのもの(AvalonDock http://avalondock.codeplex.com/ドッキングコンテナー)のため、選択の余地はありません。
問題は、.NETデータグリッドコントロールのインフラストラクチャが親のWinFormsフォームを認識している必要があることですが、この状況で使用する次の構造は常にnullを返します。
Form myTopLevelOwnerForm = fCurrentGrid.TopLevelControl as Form;
つまり、この目的を目的とした標準のControl.TopLevelControlプロパティはnullを返しますが、WPFホストの場合はnullを返す可能性があります。
問題は、現在のコントロールのコードから親フォームを知る他の方法はありますか?たとえば、WinAPIハンドルまたはより優れた他のネイティブ.NETメンバーを使用していますか?