• Caliburn.Micro 杰的入门教程1(翻译)


    Caliburn.Micro 杰的入门教程1(翻译)

     

    Caliburn.Micro 杰的入门教程1(原创翻译)
    Caliburn.Micro 杰的入门教程2 ,了解Data Binding 和 Events(翻译)
    Caliburn.Micro 杰的入门教程3,事件和参数
    Caliburn.Micro 杰的入门教程4,事件聚合器
    Caliburn.Micro 杰的入门教程5,窗口管理器
    Caliburn.Micro 杰的入门教程6, Screens 和 Conductors 简介


     Caliburn.Micro项目地址:

    http://caliburnmicro.codeplex.com (旧)

    https://github.com/Caliburn-Micro/Caliburn.Micro

    【原文地址】Mindscape's Getting Started Tutorial
    http://www.mindscapehq.com/blog/index.php/2012/01/12/caliburn-micro-part-1-getting-started/


     备注:

    Bootstrapper相关类和实现方式,在新版本有调整,继承BootstrapperBase基类,并在构造方法调用InitializeComponent(),新版本教程文档,请移步此处查看我后来翻译的文章。

    Caliburn Micro Part 1: Getting Started


    Step 1: Getting Started

    Caliburn Micro 建立于 .NET framework 4.0 之上,所以需要在Visual Studio 2010中(或更高)创建应用程序,先要创建一个新的WPF应用程序并添加引用:【 Caliburn.Micro.dll 和 System.Windows.Interactivity.dll】,您可以从Caliburn Micro项目找到下载。

    如果使用的是Visual Studio,推荐做法是使用Nuget安装Caliburn.Micro相关的包,如【Caliburn.Micro.Start】

    在新建的WPF项目中,删除MainWindow.xaml项目文件。(也就是新建项目自带的主窗口)
    在App.xaml项目文件中,删除 StartupUri 节点特性,如下:

    复制代码
    <Application x:Class="CaliburnMicroApp.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Application.Resources>
     
      </Application.Resources>
    </Application>
    复制代码

    此步骤是为了将初始化窗口重建,准备指向Caliburn Micro,而不是WPF自定义的,后面会有转移指向的步骤。

    Step 2: The View Model

     Caliburn Micro优化了View-Model-First方式,下一步就是添加一个类来表示视图模型了。大型应用程序可以有多个视图模型,每一种都可以有不同的逻辑视图。 下面是一个空视图模型的代码示例。 本教程是专注于简单的开始将Caliburn Micro纳入WPF应用程序中,我们现在暂时不让视图模型做什么(保持最简洁)。

    复制代码
    using Caliburn.Micro;
     
    namespace CaliburnMicroApp
    {
      public class AppViewModel : PropertyChangedBase
      {
     
      }
    }
    复制代码

    首先要注意的是类的名称,Caliburn Micro默认有一个特定的命名约定,这样就可以关联匹配的视图和视图模型。所以,一个视图模型的类名应该以“ViewModel”结束,当然前面的名字就取决于你了。另一件要注意的是,这个类继承于PropertyChangedBase。 这是Caliburn Micro提供的,用于自动属性更改通知,所以我们不需要实现INotifyPropertyChanged。 尽管这个示例视图模型不做任何事情,我已经继承PropertyChangedBase并做好实现。 以后当给视图模型添加属性,将会派上用场。

    Step 3: The View

    为了显示窗口,我们需要创建一个视图,对应前面步骤中创建的视图模型。 只需要向项目添加一个新用户控件,如下所示。 再次指出,Caliburn Micro默认有特定的命名约定,这样就可以把视图对应到适当的视图模型。 视图名称应该与“View”结束并且开始部分要和对应的视图模型使用相同的名称。 对于我的例子,“AppView”视图对应“AppViewModel”。 下面的代码我也设置宽度,高度和网格背景,这样当您运行这个应用程序您可以看到它是否正常工作。

    复制代码
    <UserControl x:Class="CaliburnMicroApp.AppView"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006">
      <Grid Width="300" Height="300" Background="LightBlue">
     
      </Grid>
    </UserControl>
    复制代码

    Step 4: The Bootstrapper

    引导程序的机制用于CaliburnMicro合并到您的应用程序。 它也是让你可以为应用程序的需要,配置框架的地方。 对于本教程中,我使用了一个非常简单的引导程序实现所示:

    复制代码
    using Caliburn.Micro;
     
    namespace CaliburnMicroApp
    {
      public class AppBootstrapper : Bootstrapper<AppViewModel>
      {
      }
    }
    复制代码

    CaliburnMicro有2个不同的bootstrappers可用。 上面使用允许设置你想要在启动时使用的视图模型的泛型类型。 最后一步就是告诉应用程序使用引导程序了。 是通过在xaml资源字典中添加你的引导程序做到的。 这样做之后,xaml会现在看起来是这样的:

    复制代码
    <Application x:Class="CaliburnMicroApp.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:local="clr-namespace:CaliburnMicroApp"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Application.Resources>
        <ResourceDictionary>
          <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary>
              <local:AppBootstrapper x:Key="bootstrapper" />
            </ResourceDictionary>
          </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
      </Application.Resources>
    </Application>
    复制代码

    现在,当您运行应用程序时,您将看到一个小窗口,一个淡蓝色背景。 您的应用程序现在已经做好了CaliburnMicro最基础的支持。

  • 相关阅读:
    爱奇艺笔试题 输出01020304... ...
    ThreadPoolExecutor 中为什么WorkQueue会在corePoolSize满了之后入队
    jvisualvm 的使用
    连续子数组的最大和
    最长连续子序列
    leetcode 需要了解的知识点储备
    java String
    mysql MVCC
    java 批量导出(zip文件)
    java 中接口调用
  • 原文地址:https://www.cnblogs.com/aijiao/p/11096569.html
Copyright © 2020-2023  润新知