AvalonDock 2配Caliburn Micro

时间:2013-01-27 10:45:33

标签: mvvm caliburn.micro avalondock

是否有关于将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;
    }
}

并将其与内容控件和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>

2 个答案:

答案 0 :(得分:6)

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

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

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

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

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

答案 1 :(得分:2)

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

我相信这是我用来为telerik RadDockingManager创建类似文档管理器的帖子。该帖子和this代码可能有所帮助。