1

コンポーネント DevExpress DockLayoutManager を使用しています

彼らのウェブサイトのドキュメントによると

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

Control プロパティは、「ウィンドウ/ページのルート要素を返します」、つまりグリッドです。

例はデモ アプリケーションにあります: 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 as Grid)を呼び出すと。親 - DockLayoutManager へのリンクを取得します。

私は全く分かりません。窓はどこへ?DockLayoutManager は、Windows のグリッドの論理ツリーで親になりますか?

教えてください-ウィンドウを取得し、必要なクラスにキャストしてそのメソッドを呼び出す方法は?

つまり、このコードを機能させる方法

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

1 に答える 1

1

ドキュメントによると、URI が Window を参照する場合、AddDocumentPanel メソッドは指定された Window コンテンツのみをロードします。Window オブジェクト自体、そのリソース、およびイベント ハンドラーは読み込まれず、LayoutPanel.Control プロパティを介してアクセスできません。

Window オブジェクトの代わりに UserControl オブジェクトを使用できます。この場合、UserControl 自体が読み込まれ、読み込まれた UserControl に LayoutPanel.Control プロパティを介してアクセスできるようになります。

于 2014-01-22T07:16:46.057 に答える