我已经使用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;
}
}
答案 0 :(得分:0)
以下是答案 - WpfDataTest.Window1是WPF Window派生类。我只是将它改为我的WPFData项目中的顶级UserControl,它可以工作。作为额外的注释,它需要是顶级控件,如Items Control,UserControl或Grid才能工作。这个答案归功于Ryan Molden。