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<object>
    {
    }

然后他的View我们创建后,它内部的内容需要将其命名为x:Name="ActiveItem",这个是为了告诉这个框架,让他定位到他要显示的内容是什么。然后可以删除掉MainWindow.Xaml文件,这个根据自己需要更改。

创建后代码如下——

<Window x:Class="Caliburn.Micro.Tutorial.Wpf.Views.ShellView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Caliburn.Micro.Tutorial.Wpf.Views"
        mc:Ignorable="d"
        Title="ShellView" Height="450" Width="800">
    <Grid>
    <ContentControl x:Name="ActiveItem" Margin="20"/>
  </Grid>
</Window>

最后初始状态下的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如下

<Application x:Class="Caliburn.Micro.Tutorial.Wpf.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Caliburn.Micro.Tutorial.Wpf">
    <Application.Resources>
      <ResourceDictionary>
           <ResourceDictionary.MergedDictionaries>
               <ResourceDictionary>
                   <local:Bootstrapper x:Key="Bootstrapper" />
               </ResourceDictionary>
             </ResourceDictionary.MergedDictionaries>
       </ResourceDictionary>
    </Application.Resources>
</Application>

其中修改项为——》

<ResourceDictionary>
           <ResourceDictionary.MergedDictionaries>
               <ResourceDictionary>
                   <local:Bootstrapper x:Key="Bootstrapper" />
               </ResourceDictionary>
             </ResourceDictionary.MergedDictionaries>
       </ResourceDictionary>

这个目的是让其找到Bootstrapper再通过其逻辑通过相应的ViewModel打开相对应的页面。

配置日志

日志的代码为Caliburn中所有,其中为

 public static void StartDebugLogger()
   {
   LogManager.GetLog = type => new DebugLog(type);
   }

使用时,在Bootstrapper的构造函数中加入StartDebugLogger()即可。

以上就是Caliburn.Micro的初始配置,后期会跟进一些内容。

  • 27
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matrix Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值