行业知识
Caliburn.Micro框架学习笔记——初始配置
Caliburn.Micro是一个WPF的MVVM框架,官方介绍是“ 这个是用于创建各类型的XAML平台应用的精简而又强大的框架。强力支持MVVM类的模式,使你的项目更快的建立,并且不牺牲代码质量以及可测试性”。
MVVM介绍
Model View ViewModel这样一个三层的一个架构。就WPF而言,View表示的是Xaml层的视图表示层,ViewModel主要用来接收UI层过来的命令以及包含处理这些命令的逻辑。Model层表示的是数据实体,但是现在也有将数据实体再分一层为DTO层,主要用来做数据库的交互。
已经有一些框架比如Prism等,那为什么要学习使用Caliburn.Micro这个框架?
这个框架宣称,它很灵活,同时能够使得命令不在UI层中进行控制而是直接在VM层中进行操作。剩下的,我们先看看它能够处理什么问题。
使用配置步骤
导入与架构
在nuget中引入Caliburn.Micro
然后再vs2022中创建他的架构模式,
配置启动项
Caliburn的逻辑是他有一个初始化启动文件,这个文件命名为Bootstrapper.cs,它是用来作为配置启动用的。
他的逻辑就是,一般wpf是从app.xaml中进行启动的,然后启动后的主页是系统默认的MainWindow.xaml。所以这里更改为Bootstrapper.cs用来配置启动。
在搞这个之前,我们先创建一个ShellView和一个ShellViewModel作为启动页面和启动页面的逻辑。其中这个ViewModel继承于
public class ShellViewModel: Conductor { } 然后他的View我们创建后,它内部的内容需要将其命名为x:Name="ActiveItem",这个是为了告诉这个框架,让他定位到他要显示的内容是什么。然后可以删除掉MainWindow.Xaml文件,这个根据自己需要更改。
创建后代码如下——
最后初始状态下的Bootstrapper代码为,其中该类继承自BootstrapperBase
public class Bootstrapper: BootstrapperBase{//构造函数public Bootstrapper() { Initialize(); }//重写startup方法,用来告诉框架启动页面是哪一个 protected override async void OnStartup(object sender, StartupEventArgs e) { await DisplayRootViewForAsync(typeof(ShellViewModel)); }} 然后修改app.xaml如下
其中修改项为——》
这个目的是让其找到Bootstrapper再通过其逻辑通过相应的ViewModel打开相对应的页面。
配置日志
日志的代码为Caliburn中所有,其中为
public static void StartDebugLogger() { LogManager.GetLog = type => new DebugLog(type); } 使用时,在Bootstrapper的构造函数中加入StartDebugLogger()即可。