Caliburn Micro和ModernUI示例/教程

有没有人有关于如何将Caliburn Micro与ModernUi( https://mui.codeplex.com )一起使用的示例或教程?

好的,所以我快速搞砸了它,看看Mui论坛,这似乎是最好的方法:

由于窗口从URL加载内容,您需要采用视图优先方法,然后找到适当的VM并绑定两者。

执行此操作的最佳方法似乎是通过ContentLoader类,该类用于在ModernWindow时将内容加载到ModernWindow 。 您可以将DefaultContentLoader子类化,并提供必要的CM魔法来绑定加载的项目:

 public class ModernContentLoader : DefaultContentLoader { protected override object LoadContent(Uri uri) { var content = base.LoadContent(uri); if (content == null) return null; // Locate the right viewmodel for this view var vm = Caliburn.Micro.ViewModelLocator.LocateForView(content); if (vm == null) return content; // Bind it up with CM magic if (content is DependencyObject) { Caliburn.Micro.ViewModelBinder.Bind(vm, content as DependencyObject, null); } return content; } } 

你的CM引导程序应该只引导一个由基于ModernWindow的视图支持的ModernWindow视图模型(CM尝试使用EnsureWindow创建一个新的基本WPF Window类,除非你的控件已经从ModernWindow所做的Windowinheritance。如果你需要所有的对话框和弹出窗口是MUI你可能需要重新实现WindowManager ):

 public class Bootstrapper : Bootstrapper { } 

哪个可以是指挥(OneActive),看起来像这样:

 public class ModernWindowViewModel : Conductor.Collection.OneActive { } 

而XAML的观点是

ModernWindowView.xaml

            

显然,您还需要将加载器作为资源:

             

这是我用作测试的ChildViewModel

 public class ChildViewModel : Conductor { public void ClickMe() { MessageBox.Show("Hello"); } } 

和XAML(只需一个按钮)

    Hello World     

并且概念certificate:

MUI示例

我使用适用于WPF,Caliburn Micro和MEF的Modern UI创建了一个非常非常简单的聊天应用程序示例。

https://github.com/gblmarquez/mui-sample-chat

我希望它有所帮助