DevExpress的。 DockLayoutManager。 DocumentPanel添加。如何获得原始窗口的链接?

时间:2014-01-21 14:21:35

标签: c# wpf devexpress-windows-ui

我使用组件DevExpress DockLayoutManager

根据其网站上的文件

http://documentation.devexpress.com/#WPF/DevExpressXpfDockingLayoutPanel_Uritopic

Control属性“返回Window / Page的根元素” - 即Grid。

示例在他们的演示应用程序中:DockingDemo.Wpf DocumentGroups.xaml

这是我的代码

DocumentGroup documentContainer = dockManager.GetItem("documentContainer") as DocumentGroup;
DocumentPanel panel = dockManager.DockController.AddDocumentPanel(documentContainer,new Uri("/WpfSample;component/MyWindows/Win1.xaml", UriKind.Relative));
panel.Caption = "SomeName";
MyWindow win = ((panel.Control as Grid).Parent as MyWindow);
win.DoInit(object Obj);

当我调用(panel.Control为Grid)时。父 - 我得到了一个指向DockLayoutManager的链接。

我不太明白。窗户去哪儿了? DockLayoutManager在Windows网格的逻辑树中变为Parent?

请告诉我 - 如何获取Window,将其转换为所需的类并调用其方法?

即如何使此代码工作

MyWindow win = ((panel.Control as Grid).Parent as MyWindow);
win.DoInit(object Obj);

1 个答案:

答案 0 :(得分:0)

根据documentation,当URI引用Window时,AddDocumentPanel方法仅加载指定的Window内容。 Window对象本身,其资源和事件处理程序未加载,无法通过LayoutPanel.Control属性访问它们。

您可以使用UserControl对象而不是Window对象。在这种情况下,将加载UserControl本身,您将能够通过LayoutPanel.Control属性访问加载的UserControl。