1

Avalon Dock 2 がモデルをフローティング ペインとして扱うようにモデルにバインドするにはどうすればよいですか?

基本的には、ドッキングできるウィンドウを開き、理想的には MVVM ソリューションを使用したいと考えています。しかし、私が到達できた最も遠いところは、アンカー可能なものを取得することであり、ドッキングマネージャーを誘惑してそれらを浮かせるようにする方法はわかりません.

<xcad:DockingManager AnchorablesSource="{Binding Tools}">

    <xcad:DockingManager.LayoutItemContainerStyle>
        <Style TargetType="{x:Type xcad:LayoutItem}">
            <Setter Property="Title" Value="{Binding Model.Title}"/>    
        </Style>
    </xcad:DockingManager.LayoutItemContainerStyle>

    <xcad:DockingManager.LayoutItemTemplate>
        <DataTemplate>
            <ContentControl cal:View.Model="{Binding . }" IsTabStop="False" />
        </DataTemplate>
    </xcad:DockingManager.LayoutItemTemplate>

</xcad:DockingManager>
4

1 に答える 1

1

フローティングウィンドウであなたが提案していることはしていませんが、Caliburn.Micro を AvalonDock と統合することができました。あなたとドキュメンテーションを助けるために、いくつかの例が必要です。

  1. AvalonDock ソースコードをダウンロード
  2. Gemini ソース コード(Caliburn.Micro と AvalonDock のマッシュアップ) をダウンロードします。

つまり、ToolViewModelBase のプロパティと組み合わせて LayoutInitializer を使用して、アンカー可能オブジェクトをフローティングとして開く必要があることを示します。

<avalonDock:DockingManager.LayoutUpdateStrategy>
  <local:LayoutInitializer/>
</avalonDock:DockingManager.LayoutUpdateStrategy>

対象の AvalonDock ソース コードを以下に示します。Gemini で同等のコードを見つけることができます。

.\Version2.0\AvalonDock.MVVMTestApp\ToolViewModel.cs

.\Version2.0\AvalonDock.MVVMTestApp\LayoutInitializer.cs

于 2013-09-28T05:26:35.250 に答える