AvalonDock 2配Caliburn Micro

And*_*ers 7 mvvm avalondock caliburn.micro

是否有关于将AvalonDock与Caliburn Micro MVVM一起使用的博客或文章?谷歌搜索时找不到多少

http://avalondock.codeplex.com/

编辑:得到了投票,所以为什么不用最终解决方案更新.完整代码可以在这里找到

https://github.com/AndersMalmgren/FreePIE

大多数与avalon相关的代码都可以在这里找到

https://github.com/AndersMalmgren/FreePIE/blob/master/FreePIE.GUI/Shells/MainShellView.xaml

Sam回答后更新

为了使Caliburn成功,需要做的非常非常少.首先实现一个LayoutItemTemplateSelector

public class AutobinderTemplateSelector : DataTemplateSelector
{
    public DataTemplate Template { get; set; }

    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
        return Template;
    }
}
Run Code Online (Sandbox Code Playgroud)

并将其与内容控件和Caliburns View.Model附加机制一起使用

<xcad:DockingManager.LayoutItemTemplateSelector>
    <avalonDock1:AutobinderTemplateSelector>
        <avalonDock1:AutobinderTemplateSelector.Template>
            <DataTemplate>
                <ContentControl cal:View.Model="{Binding . }" IsTabStop="False" />
            </DataTemplate>
        </avalonDock1:AutobinderTemplateSelector.Template>
    </avalonDock1:AutobinderTemplateSelector>
</xcad:DockingManager.LayoutItemTemplateSelector>
Run Code Online (Sandbox Code Playgroud)

Sam*_*rie 6

在研究同样的事情时,我遇到了Tim Jones开发的Gemini框架:

Github - https://github.com/tgjones/gemini

网站 - http://documentup.com/tgjones/gemini

这是尝试将AvalonDock与Caliburn.Micro集成,以提供用于构建类似IDE的应用程序的单一框架.它还处于早期阶段,但他正在实施一些基于Caliburn整体设计的有趣抽象.

它还有一些很好的演示应用程序,展示了如何使用框架.


Der*_*tie 2

http://caliburnmicro.codeplex.com/discussions/231809http://caliburnmicro.codeplex.com/discussions/430994(解决方案)

我相信这是我用来为 telerik 的RadDockingManager. 那篇文章和这段代码可能会有所帮助。