VS 2008可扩展性包 - 如何使用ElementHost附加Wpf数据项目

时间:2010-11-28 17:12:20

标签: wpf vsx visual-studio-2008-sp1 vs-extensibility

我已经使用Wpf窗口,Sql数据和ElementHost创建了一个包 - 非常简单,没有互操作,只是代码。现在我需要扩展并希望使用Wpf数据项目作为我的ElementHost.Child。我添加了一个项目引用,并在ToolWindow.cs中使用了这行代码:

 elementHost.Child = WpfProject.Window1;

程序包运行,ToolWindow打开时显示空白的Wpf Frame。调试告诉我,我获得了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;
        }
    }

1 个答案:

答案 0 :(得分:0)

以下是答案 -  WpfDataTest.Window1是WPF Window派生类。我只是将它改为我的WPFData项目中的顶级UserControl,它可以工作。作为额外的注释,它需要是顶级控件,如Items Control,UserControl或Grid才能工作。这个答案归功于Ryan Molden。