7

是否有任何关于将 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

山姆回答后更新

启用 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>
4

2 回答 2

6

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

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

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

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

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

于 2013-07-03T12:09:19.083 回答
2

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

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

于 2013-01-28T08:12:00.117 回答