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