首页 > 其他 > 详细

Caliburn教程1

时间:2014-03-04 09:58:56      阅读:419      评论:0      收藏:0      [点我收藏+]

从MEF谈起

说起Caliburn就不得不先说说MEF框架,因为Caliburn在很多地方上用到了这个模型。MEF(Managed Extensibility Framework)是.net 平台下的一个框架,全称托管扩展框架,是将.net下的代码进行组件式组合而设计的,MEF的具体内容我会再详细去写,本次内容重点并非它,这里我们只是介绍下,MEF框架支持两类操作,Import and Export, 这两类操作是很重要的组件功能, 将一个类视为一个松耦合的组件, 这个类可以从一个接口派生, 然后Export成接口的形式。 这样,Import组件时, 就可以使用该类的实例化对象了。 Caliburn中大量使用此组件模型,众多的类的组合,大部分都导出成了对应的接口的模式进行组合,我们在开发时,也可以继续使用。

Caliburn的消息响应

<Button cal:Message.Attach="Save" Height="46" Content="Save"/>

这句话就是了,cal:Message.Attach="Save"就将当前的默认消息绑定到了ViewModel中的

"

Caliburn开启新窗口

   public void Save()
    {
        windowManager.ShowWindow(new WindowViewModel());
    }

WindowManager

[Export(typeof(IShell))]
public class ShellViewModel : Screen,IShell
{
    readonly IWindowManager windowManager;

    [ImportingConstructor]
    public ShellViewModel(IWindowManager windowManager)
    {
        this.windowManager = windowManager;
    }

    public void Save()
    {
        windowManager.ShowWindow(new WindowViewModel());
    }
    public bool CanSave()
    {
        return true;
    }
}

这里的CanSave函数会自动被绑定为,判读Save功能是否能使用上,如果不能,上面绑定的按钮也会自动变为灰色

各组件简介

Caliburn中的ActionMessages是整个框架的精髓,可以自动的绑定值,并且可以传递值,非常方便快捷。

Action Conventions提供了一系列默认的绑定策略,例如XXXView自动绑定到XXXViewModel, 如果有一个按钮Name=Save,其ViewModel中又有一个Save方法,那么这个按钮的Click事件就会默认绑定到这个函数上去。更方便的是,你还可以设计公约,使得其他公约绑定可以实现。

Binding Conventions使得属性也可以自动绑定,如何一个子元素的名字和其ViewModel中的属性名字相同,系统会试图绑定它们。并支持用户设置自己的自动绑定。

Screen, ScreenConductor and ScreenCollection 可以使得基于模型的跟踪活动元素,强制生命周期,优雅的结束应用程序等

EventAggregator 是一个基于pub/sub模型的管理器,你首先要注册一个message handler, 然后他就会发给你任何你想要监听的消息,甚至支持多态。要声明一个感兴趣的message,需要在UI线程中调用

>

Caliburn教程1,布布扣,bubuko.com

Caliburn教程1

原文:http://www.cnblogs.com/sunxfancy/p/3578738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!