0

我已经使用 Wpf 窗口、Sql 数据和 ElementHost 创建了一个包——非常简单,没有互操作,只有代码。现在我需要扩展并希望使用 Wpf 数据项目作为我的 ElementHost.Child。我添加了一个项目引用,并在 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 回答