0

Wpf ウィンドウ、Sql データ、および ElementHost を使用してパッケージを作成しました。非常に簡単で、相互運用性はなく、コードだけです。ここで、ElementHost.Child として Wpf データ プロジェクトを拡張して使用する必要があります。プロジェクト参照を追加し、ToolWindow.cs で次のコード行を使用しました。

 elementHost.Child = WpfProject.Window1;

パッケージが実行され、ToolWindow が空白の Wpf フレームで開きます。デバッグすると、UI 要素の参照と ToolWindow.cs へのデータさえ取得したことがわかりますが、ページには到達していません。ある種のバインディング構文が欠けていることはわかっていますが、ネットで大規模な検索を行っても魔法は明らかになりませんでした。プロジェクトを実行する必要がありますか、それとも相互運用のトリックを実行する必要がありますか? これを飛ばせば主要な作業を再利用できるので、これを機能させるのは本当に素晴らしいことです。乾杯、ダニー

ToolWindow クラスに追加したコードは次のとおりです。

     private ElementHost elementHost;
     protected override void Initialize()
    {           
       base.Initialize();
        elementHost = new ElementHost();
        WpfDataTest.Window1 cv = new Window1(); 
        cv.Content = cv;
        elementHost.Child = cv;
    }
    override public IWin32Window Window
    {
        get
        {
            return (IWin32Window)elementHost;
        }
    }
4

1 に答える 1

0

ここに答えがあります - WpfDataTest.Window1 は WPF Window 派生クラスでした。WPFData プロジェクトで最上位の UserControl に変更しただけで機能します。追加の注意として、Items Control、UserControl、または Grid などのトップ レベル コントロールが機能する必要があります。この回答の功績は Ryan Molden にあります。

于 2010-11-28T22:33:48.260 に答える