mvvm - 带有 Caliburn Micro 的 AvalonDock 2

标签 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>

最佳答案

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

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

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

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

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

关于mvvm - 带有 Caliburn Micro 的 AvalonDock 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14546583/

相关文章:

mvvm - 围绕 MEF : how to load View(Model)? 缠绕我的思绪

c# - Caliburn Micro WPF 窗口管理

wpf - 为什么在初始登录关闭时,Caliburn Micro 会关闭我的所有屏幕?

wpf - 在 WPF 应用程序中使用 IoC 解决依赖关系的位置在哪里?

wpf - AvalonDock:聚焦时更改标题背景

c# - DataGrid 失去选择

c# - AvalonDock 停靠一个窗口

c# - 通用 View 模型编辑支持

wpf - Nettiers WPF MVVM

wpf - 如何使用 MVVM 调用用户控制方法?