WPF in C# with MVVM using Calibu
本文一步步讲述使用Caliburn Micro包来创建MVVM结构的WPF项目:
1.创建WPF项目。
打开VS,创建WPF项目,即可创建一个WPF项目。 新建WPF项目.png图中:1:解决方案的名字,2:项目的名字,1,2可以一致亦可以不一致,3.需要选择的WPF项目
2.安装Caliburn Micro 包
在项目的引用里点击右键,选择NuGet,并在搜索栏里面输入Caliburn Micro,如下图,选择第一个安装即可。其间会提示你安装Caliburn.Mirco和Caliburn.Mirco.Core。点击确定即可。
image.png
3.配置符合CaliburnMicro的框架格式。
- 1.删除项目自带的MainWindow.xaml,并在App.xaml中删除相应的
StartupUri="MainWindow.xaml"
- 2.在App.xaml中添加一段
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<local:Bootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
并修改相应的App.cs.这里有点奇怪,似乎我这个App.cs修改还是不修改,对主程序没有影响。当然也有可能是因为下面的ShellViewModel我继承的是Screen类的缘故(是可以根据所要实现的功能继承CaliburnMicro其他的类的,官方教程里继承的就是PropertyChangedBase)。
public partial class App : Application {
public App() {
InitializeComponent();
}
}
- 3.为项目添加Bootstrapper类,这个类名是可以改动的,但是要一致
(这来自<local:Bootstrapper
x:Key="bootstrapper" />)
我们修改和增加类中的代码如下
using Caliburn.Micro;
public class Bootstrapper : BootstrapperBase {
public Bootstrapper() {
Initialize();
}
protected override void OnStartup(object sender, StartupEventArgs e) {
DisplayRootViewFor<ShellViewModel>();
}
}
-
创建MVVM结构
创建三个文件夹,分别为Models,Views,ViewModels,(MVVM)分别主司的是数据,界面,界面的交互和驱动程序。 -
4.创建第一个VM程序,我们在ViewModels文件加中创建一个类,ShellViewModel.cs(参见上述代码中的DisplayRootViewFor<ShellViewModel>();)并作如下修改来
public class ShellViewModel:Screen
{
}
然后再Views文件夹中新建WPF窗体(如果你想创建可以即可以在另一个窗体里调用也可以独立显示的窗体,选则新建用户控件)ShellView.xmal。
然后运行程序,基本就可以成功了。
注意:我们需要把项目文件夹ViewModels包含在Bootstrapper.cs中,否则DisplayRootViewFor<ShellViewModel>();会报错,因为找不到ShellViewModel.cs。如果不创建文件夹就不需要这一步。
4.测试是否正确调用了xmal
修改或者添加ShellView.xmal中的背景颜色Background="AliceBlue",来查看程序是不是通过ShellViewModel.cs的名字来调用了相应的ShellView.xmal
命名很重要,**ViewModel.cs和**View.xmal是对应的在CaliburnMicro中还有其他命名即可建立联系的功能请自行探索。
5.Have Fun
上述基本就是整个框架的搭建,至于实际使用的时候选择继承的类或者使用的窗体,这都是可以更改的。如果你还需要调用一些功能函数,可以在解决方案中新建一个相应的类库项目,然后在主程序项目中引用即可。