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