【前提条件】
AvalonDockUtilのライブラリを使用しています。
- ViewModelクラスをWorkspaceBaseで継承します。
- WorkspaceBase::NewDocument関数をオーバーライドして、Documentウィンドウの生成処理を作成します。
- AvalonDockUtil.DocumentContentを継承したクラスを作成します。
default: break;
public override AvalonDockUtil.DocumentContent NewDocument(object param)
{
switch ((string)param)
{
// Testウィンドウドキュメント
case "TestWindowDocument":
{
if (!IsExistDocumentByClassName((string)param))
{
return new TestWindowDocument(this.Messenger);
}
break;
}
}
return null;
} - XAMLでパラメータ設定に次のように設定します。「Command=”{Binding NewDocumentCommand}” CommandParameter=”TestWindowDocument”」
※Commandパラメータには生成したいドキュメントウィンドウを設定する機能を独自追加しています。 - AvalonDockにDocumentをバインドするために下記の設定を行います。
<avalonDock:DockingManager x:Name=”DockingManager”
DocumentsSource=”{Binding Documents}”><!–ドッキングマネージャのDocumentの表示–>
<avalonDock:DockingManager.LayoutItemContainerStyleSelector>
<util:ContentPropertyStyleSelector />
</avalonDock:DockingManager.LayoutItemContainerStyleSelector>
とりあえずのメモになります。
また時間のある時に整理していきます。