簡體   English   中英

Avalon Dock 2中的MVVM浮動窗格(通過Caliburn)

[英]MVVM Floating Pane in Avalon Dock 2 (via Caliburn)

如何綁定到模型,以使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>

我沒有按照浮動窗口的建議進行操作,但是我設法將Caliburn.Micro與AvalonDock集成在一起。 您將需要幾個示例來幫助您和編寫文檔。

  1. 下載AvalonDock源代碼
  2. 下載Gemini源代碼 (Caliburn.Micro和AvalonDock的混搭)。

簡而言之,將LayoutInitializer與ToolViewModelBase上的屬性結合使用,以指示應將錨定對象打開為浮動對象。

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

下面是您感興趣的AvalonDock源代碼,您將在Gemini中找到等效的代碼。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM