【问题标题】:AvalonDock 2 with Caliburn MicroAvalonDock 2 与 Caliburn Micro
【发布时间】:2013-01-10 21:06:21
【问题描述】:

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

【问题讨论】:

  • 我知道这已经很老了,但我又回到了同一个地方进行一个新项目。我试图理解 FreePIE 代码库的这一部分,但是当我尝试复制这种方法时,我得到“找不到 System.Windows.Controls.ContentPresenter 的视图”而不是预期的视图。使用 Caliburn 时,您是否有明显的原因可能会得到该视图而不是视图?
  • 这是我的问题 - stackoverflow.com/a/32723365/571237。感谢您发布最终解决方案!

标签: mvvm caliburn.micro avalondock


【解决方案1】:

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

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

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

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

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

【讨论】:

  • Yupp 在我这样做时也发现了同样的情况,但就我的目的而言,框架太大了。我更新了我的问题,只需要让它与 Caliburn 一起工作
【解决方案2】:

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

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

【讨论】:

  • 哦,那是错误的。我更新了它,虽然你可能已经看过了。
  • 谢谢,你也可以保留我的帖子,我有我的解决方案
猜你喜欢
  • 2016-04-06
  • 1970-01-01
  • 2014-09-07
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 2012-01-29
  • 2012-10-24
  • 2012-05-08
相关资源
最近更新 更多