代码改变世界

一步一步分析Caliburn.Micro框架(序)

2012-08-14 10:26  旦旦  阅读(4664)  评论(4编辑  收藏  举报

Caliburn.Micro(多数人叫CM)是一个开源的MVVM开发框架,主要应用范围是WPF\Silverlight\WinPhone以Xaml为UI的开发框架.与众多的MVVM框架相比较.个人觉得CM是我用得最习惯最快捷的一个框架.让人的感觉到不会像微软的prism很大很臃肿,又不像MvvmLight轻巧到只有几个文件只能做简单的MVVM功能.

与我一起用过CM的同事都说这个框架用起来很方便.

  • 直接实例对象然后放到一个WindowsManager的类或.Conductor<IShell>.Collection.OneActive继承类上的特定方法就可以与UI自动绑定(虽然用的是命名约束).
  • UI事件上的绑定.CM简单的封装了System.Windows.Interactivity.dll上的方法从而变得简单操作.(CM的UI事件与通常绑定System.Windows.Input.ICommand不同是直接绑定ViewModel中的方法,也继承System.Windows.Interactivity的多事件)

    扩展属性:

    cal:Message.Attach="DeactivateItem($dataContext, 'true')"

    直接绑定函数DeactivateItem,第一个参数为当前控件的DataContext对象(支持类型 DataContext对象,当前事件的EvnetArge,当前UI,当前控件,当前执行的上下文),第二为bool()

    cal:Message.Attach="[Key Enter] = [EnterPressed]"

    直接绑定键盘的按回车键时触发EnterPressed方法

    cal:Message.Attach="[Event MouseDoubleClick] = [Action ShowView]; [Event Click] = [Action ShowView]"

    对一个对象控件对多个事件绑定指定方法.

  • 通过x:Name这个扩展属性自动与MVVMViewModel层对应的方法或属性自动绑定.

    还有更多功能会将来的文章中一一介绍

    文章系列

    分析.要了解分析构架的当然要准备下了.

    首先为原理.原理就不一一说明了,列出相关的关键字吧.(主要是这原理已经有不少人都写过了.)

    • MVVM原理
    • 正则
    • 反射
    • MEF

    当然CM源代码是不可少的.网址http://caliburnmicro.codeplex.com/下的Source Code标签下mercurial链接会弹出源代码地址.代码管理器为TortoiseHG.如果不想装上这个代码管理器那就直接Download压缩包也行.

    由于CM支持多个平台而我以WPF下的CM方案为分析原型(主要是这段时间在搞个WPF的平台项目)

    下编文章起将与大家一起分析功能,让我们更好的理解设计框架要考虑的问题.让做框架设计师的人与我一起走上框架设计的.