簡介:Caliburn.Micro是Caliburn的一個輕量級版本開源架構,可以用於wpf,sliverlight,wp7等,和注重模塊化的Prism比起來也有許多優點,具體比較可以參考
此文 https://idanreuven.wordpress.com/2016/01/08/prism-vs-caliburn-micro/,本人用過Prism,所以想學習下這個架構,看看是否更方便開發。
它的功能介紹參考官方文檔吧,我也少廢話,直接以實例開始入門吧。
首先新建一個Wpf工程CaliburnTest,Targe framework 至少要選4.5版本
1、使用nuget 安裝Caliburn.Micro類庫
2、刪除MainWindow.xaml 並且刪除App.xaml的 StartupUri="MainWindow.xaml"
3、新建一個ViewModel類,命名為ShellViewModel
public class ShellViewModel { }
3、新建一個Bootstrapper類,繼承BootstrapperBase
public class Bootstrapper: BootstrapperBase { public Bootstrapper() { Initialize(); } protected override void OnStartup(object sender, StartupEventArgs e) { DisplayRootViewFor<ShellViewModel>(); } }
重寫OnStartup方法,使用 DisplayRootViewFor<ShellViewModel>();指定啟動的ViewModel,Caliburn.Micro可以根據xxxxViewModel對應xxxxView的協定,自動實例化View,Caliburn.Micro支持View First和ViewModel First兩種方式來創建View。完全不用在View的后台代碼中寫DataContext=new xxxViewModel()代碼,十分方便。
4、創建視圖 ShellView,注意要按照上述的協定來命名
<Window x:Class="CaliburnTest.ShellView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ShellView" > <Grid> <TextBlock>dddd</TextBlock> </Grid> </Window>
5 修改App.xaml ,加入如下紅色代碼,注意wpf中和sliverlight中,此處的寫法是有區別的,官網給出的是sliverlight的寫法
<Application x:Class="CaliburnTest.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:CaliburnTest"> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary> <local:Bootstrapper x:Key="bootstrapper" /> </ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Application.Resources> </Application>
運行測試就可以看到窗體啟動了。這篇就到此為止,只講講如何搭建框架,下一篇再學習binding,Action的協定