博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一步一步分析Caliburn.Micro框架(序)
阅读量:5057 次
发布时间:2019-06-12

本文共 1327 字,大约阅读时间需要 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
    这个扩展属性自动与
    MVVM
    ViewModel
    层对应的方法或属性自动绑定
    .

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

    文章系列

    • 绑定执行方法(
      ActionMessage)
    • ViewModel与View的绑定
    • CM的MEF
    • 子控件

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

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

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

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

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

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

转载于:https://www.cnblogs.com/DasonKwok/archive/2012/08/14/2637559.html

你可能感兴趣的文章
发送请求时params和data的区别
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
一步步学习微软InfoPath2010和SP2010--第七章节--从SP列表和业务数据连接接收数据(4)--外部项目选取器和业务数据连接...
查看>>
如何增强你的SharePoint 团队网站首页
查看>>
FZU 1914 Funny Positive Sequence(线性算法)
查看>>
oracle 报错ORA-12514: TNS:listener does not currently know of service requested in connec
查看>>
基于grunt构建的前端集成开发环境
查看>>
MySQL服务读取参数文件my.cnf的规律研究探索
查看>>
java string(转)
查看>>
__all__有趣的属性
查看>>
BZOJ 5180 [Baltic2016]Cities(斯坦纳树)
查看>>
写博客
查看>>
利用循环播放dataurl的视频来防止锁屏:NoSleep.js
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
ios封装静态库技巧两则
查看>>
Educational Codeforces Round 46 (Rated for Div. 2)
查看>>
Abstract Factory Pattern
查看>>
C# 实现Bresenham算法(vs2010)
查看>>