Caliburn.Micro框架 概述 Caliburn一词的本意是王者之剑-石中剑(Caliburn),其准确拼法和音标分别如下: Spell : [kal-uh-ber-n] Phonetic : 于是作者推出了Caliburn.Micro项目,Micro顾名思义,是Caliburn项目的浓缩版,重构了Caliburn项目的代码,精简掉了部分不常用的功能。 Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。 Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。 凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性。
上一篇已经简单说了一下引导类和简单的控件绑定 我的上一个例子里的button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它的Actions,看一下Caliburn.Micro给我们提供了多强大的支持 { MessageBox.Show(str.ToString()+" "+str2); } } 我们说一下上面看到的$source Caliburn.Micro 这是Caliburn.Micro Action的源码,默认的是Click和控件的LeftMouseButtonDown事件,有时间你可以详细读一下它的源码 ?
如果想深入学习Caliburn.Micro,Bootstrapper和IOC容器配置是重中之重,一定要弄清楚,否则很难理解CM的工作方式。
今天说一下协同IResult
看一下IResult接口
///
使用名称Transformer NameTransformer是在Caliburn.Micro v1.1中引入的,它是ViewLocator和ViewModelLocator如何将类名映射到其伙伴角色的一个组成部分 最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/name-transformer 翻译
Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。 Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。 凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性 2. 项目创建: step1:创建工程,使用NuGet包管理工具为当前项目安装Caliburn.Micro step2:项目创建: 新建StartView.xaml 删除项目根目录下的MainWindow.xaml Width="100" Height=" 50" Background="LightCyan"/> </Grid> </Window> 新建StartViewModel.cs using Caliburn.Micro ; } } } 新建一个类继承BootstrapperBase,这里我命名为MyBootstrapper using Caliburn.Micro; using System.Windows
Caliburn.Micro由Rob Eisenberg于2010年6月7日正式发布。 Caliburn.Micro是一个小而强大的框架,专为在所有XAML平台上构建应用程序而设计。 凭借对MVVM和其他经证明的UI模式的强大支持,Caliburn.Micro将使你能够快速构建Solution,而无需牺牲代码质量和可测试性 2. 项目创建: step1:创建工程,使用NuGet包管理工具为当前项目安装Caliburn.Micro ? Center" Width="100" Height=" 50" Background="LightCyan"/> </Grid> </Window> 新建StartViewModel.cs using Caliburn.Micro ; } } } 新建一个类继承BootstrapperBase,这里我命名为MyBootstrapper using Caliburn.Micro; using System.Windows
用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详细,自己在看它的文档和代码时写了一些demo 和笔记,还有它实现的原理记录一下 学习Caliburn.Micro要有MEF和MVVM的基础 先说一下他的命名规则和引导类 以后我会把Caliburn.Micro的 Actions IResult,IHandle 先看一下Caliburn.Micro的大概流程,画的不太好,先这样吧 ? 好了,我们开始今天的笔记。 程序要引入的三个类库 Caliburn.Micro System.Windows.Interactivity 和 System.ComponentModel.Composition 上边两个Caliburn.Micro :给控件命名的时候如txt_abc这样加下划线Calibrn会把这个名字分开 成txt和abc两个属性它会去txt属性里去找abc属性绑定 代码里打开子窗体是用的Caliburn.Micro自己的IWindowManager
前言 3.29号有发过一篇 C# WPF框架Caliburn.Micro快速搭建 上次哪个章节忘记贴app.XAML的代码,不过源码里面可以看到,这节补上 <Application x:Class="WpfApp8 ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application> 详细介绍了一个最简单的<em>Caliburn.Micro</em> 接下来看下后台代码: using <em>Caliburn.Micro</em>; using System.Windows; using System.Windows.Input; namespace WpfApp8
01 关于Conventions Caliburn.Micro的一个主要特性是,它能够通过一系列约定消除对锅炉铭牌代码的需求。有些人喜欢习俗,有些人讨厌习俗。 ViewModel Resolution (View-First) 视图模型分辨率(视图优先) 基础 尽管Caliburn.Micro更喜欢ViewModel-First开发,但有时您可能希望采用视图优先的方法 这为Caliburn.Micro提供了必要的钩子,以便在每次从DataTemplate实例化UI时应用其约定。 框架使用 ViewModelBinder用于Caliburn.Micro内部的三个位置。第一个位置是View.Model附加属性的实现内部。 02 最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/conventions 翻译:
入门指南请参阅 devlicio.us 上的“Caliburn.Micro Soup to Nuts”系列文章 (bit.ly/hLT7lL),从取出库中 Caliburn Micro 的基本知识开始, 解析Caliburn.Micro(一) 解析Caliburn.Micro(二) 解析Caliburn.Micro(三) 解析Caliburn.Micro(四) http://www.codeproject.com
01 Caliburn.Micro简介 Caliburn.Micro是一套基于XAML的MVVM模式的开发框架,它小巧而强大。 这对于现有的Caliburn用户来说都是相当标准的,但是我们在Caliburn.Micro上做了一些改进,这将进入更大的框架。 此外,Caliburn.Micro的动作在Blend中有充分的设计支持。 事实上,Caliburn.Micro将是我前进的默认框架,我建议,如果你开始一个新项目,你就从Micro框架开始。 事实上,我在Caliburn.Micro中所做的改进正在被重新折叠到Caliburn v2中。那有什么好处?
01 启动项目 打开Visual Studio 创建一个名为“Caliburn.Micro.Hello”的新WPF应用程序 添加对Caliburn.Micro Nuget包的引用,最新的版本是4.0.173 “根视图模型”是Caliburn.Micro将实例化并用于显示应用程序的视图模型。 接下来,我们需要实现“HelloBootstrapper”,以便它在启动时运行。 您应该看到如下内容: Caliburn.Micro创建了ShellViewModel,但不知道如何在没有视图的情况下渲染它。那么,让我们创建一个视图,让它查找。 您现在应该可以看到UI: 在文本框中键入内容将启用该按钮,单击该按钮将显示一条消息: 03 工作原理 Caliburn.Micro使用一个简单的命名约定来定位ViewModels的视图。 这些是Caliburn.Micro的ActionMessage和Conventions功能的基础。 还有很多东西要展示。接下来,我们可以集成一个IoC容器,比如MEF。
今天 说一下Caliburn.Micro的IEventAggregator和IHandle<T>分成两篇去讲这一篇写一个简单的例子 看一它的的实现和源码 下一篇用它们做一个多语言的demo 这两个是事件的订阅和广播 在Caliburn.Micro里EventAggregator要以单例的形式出现这样可以做到对广播做到统一的管理 对象实现IHand<T>接口后通过EventAggregator的subsribe方法把自己加入到 <Button Margin="5" x:Name="OnePublish" Content="Publish"/> </StackPanel> </UserControl> using Caliburn.Micro Handle(string message) { OneMessage = message; } } } 这是一个很简单的例子我们看一下Caliburn.Micro
在Caliburn.Micro框架下,view和viewmodel被注入到CompositionContainer容器中,然后通过名称可以实现view和viewmodel的匹配。 //显示界面 这里也可以让主界面的viewmodel继承一个公共的接口,比如IShell,这样这里接可以改写为: DisplayRootViewFor<IShell>();//显示界面 using Caliburn.Micro
05 效果演示 06 源码 链接:https://pan.baidu.com/s/1IzA0FzOhnMTE0PCU1T9dLw 往期推荐 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF框架Caliburn.Micro快速搭建 C# WPF项目实战 C# WPF mvvm模式下combobox绑定 (list<enum>、Dictionary<int,string>) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
说一下IHandle<T>实现多语言功能 因为Caliburn.Micro是基于MvvM的UI与codebehind分离, binding可以是双向的所以我们想动态的实现多语言切换很是方便今天我做一个小 下面我们就要开始用Caliburn.Micro的IHandle<T>去实现多语言了 先写一个资源的接口 public interface IResource { string
本例中我们将使用内置容器,但是Caliburn.Micro可以很好地处理任何容器。首先,继续学习第1部分的代码。我们将以此为出发点。 配置完容器后,我们需要告诉Caliburn.Micro如何使用它。这就是后面三个覆盖的目的。框架需要“GetInstance”和“getAllInstance”。 02 给智者的话 虽然Caliburn.Micro确实通过引导程序的覆盖和IoC类提供ServiceLocator功能,但您应该避免在应用程序代码中直接使用它。 可以从非Xaml主机使用Caliburn.Micro。 一旦类被实例化,您就可以像普通一样使用Caliburn.Micro,可能通过调用IWindowManager来显示新的UI。
当然,ActionMessage是这个标记中特定于Caliburn.Micro的部分。它表示当触发发生时,我们应该发送一条“SayHello”的消息。 由于我们使用了模型优先的方法,当Caliburn.Micro(以下简称CM)创建视图并使用ViewModelBinder将其绑定到ViewModel时,它为我们设置了此方法。 04 最后 原文标题:Caliburn.Micro Xaml made easy 原文链接:https://caliburnmicro.com/documentation/actions 翻译:dotnet
01 简介 之前也写过好多篇CM框架相关的项目实战文章,比如: C# WPF框架Caliburn.Micro快速搭建 C# WPF框架Caliburn.Micro入门实例1 C# WPF MVVM项目实战 (进阶①) C# WPF MVVM项目实战(进阶②) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面 C# WPF mvvm模式下combobox绑定(list<enum>、Dictionary<int,string>) C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅 但是可能这些都是把一个综合性的项目分多个部分分别讲述的