书接前文,继续来介绍一下Caliburn.Micro(CM)中的Convention。
Caliburn.Micro这个系列也写了好几篇了,作为一个第三方的应用框架,关于细节的详尽介绍并不是第一位的,能快而准确的把握它的整体思路才是最重要的。Caliburn.Micro框架中包含了很多功能,有前面介绍过的Action,Convention,Coroutine(协同),EventAggregator(弱事件)等等。其中很多功能都是锦上添花之作,比如EventAggregator等,在Prism等框架中都有介绍,CM的核心思路是它的Action以及Convention,详细的说一下这条主线。
CM主线
Caliburn.Micro的定位是一个轻量级的MVVM框架。作为MVVM,View和ViewModel之间用DataContext关联,View通过Binding和Command把操作传递给ViewModel并根据ViewModel中绑定属性的变化来自动刷新。用一个表格来对比一下Caliburn.Micro和通用MVVM框架的不同:
| 特性 | 普通MVVM框架 | Caliburn.Micro |
| 自动关联View和ViewModel(通过View的DataContext)。 | 不支持 | 支持,使用NameTransformer |
| Command | 支持,推荐使用Command | 不支持,使用Action作为替代方案。 |
| Binding | 支持,推荐使用Binding。 | 支持,可以使用Convention作为替代方案。 |
| Validation,StringFormat,Converter,UpdateSourceTrigger | 支持,使用Binding的对应机制 | 支持,可以使用Convention作为替代方案。 |
举个简单的例子来对比:
普通MVVM框架: