WPF Caliburn 学习笔记(五)HelloCaliburn
2011-03-29 10:22
316 查看
我们来实现一个最简单的实例HelloCaliburn。
首先我们要引入下面几个.dll
Caliburn.Core.dll
Caliburn.Castle.dll
Castle.MicroKernel.dll
Caliburn.PresentationFramework.dll
Microsoft.Practices.ServiceLocation.dll
Castle.Windsor.dll
为了更好的了解Caliburn如何关联View和Presenter(业务逻辑层相当于ViewModel)。我们用了MVVM模式。
如下图:
代码<cal:CaliburnApplication x:Class="WPFApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="http://www.caliburnproject.org">
<Application.Resources>
</Application.Resources>
</cal:CaliburnApplication>
[/code]
转到App.xaml.cs中
添加如下引用。
using Castle.Windsor;
using Microsoft.Practices.ServiceLocation;
using Caliburn.Castle;
using Castle.MicroKernel.Registration;
using WPFApp.Presenters.Interfaces;
using WPFApp.Presenters;
修改和添加App类
在到HelloCaliburnView.xaml页面
按F5运行效果:
![](http://images.cnblogs.com/cnblogs_com/dingli/201103/201103291021363621.png)
Code
首先我们要引入下面几个.dll
Caliburn.Core.dll
Caliburn.Castle.dll
Castle.MicroKernel.dll
Caliburn.PresentationFramework.dll
Microsoft.Practices.ServiceLocation.dll
Castle.Windsor.dll
为了更好的了解Caliburn如何关联View和Presenter(业务逻辑层相当于ViewModel)。我们用了MVVM模式。
如下图:
代码<cal:CaliburnApplication x:Class="WPFApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="http://www.caliburnproject.org">
<Application.Resources>
</Application.Resources>
</cal:CaliburnApplication>
[/code]
转到App.xaml.cs中
添加如下引用。
using Castle.Windsor;
using Microsoft.Practices.ServiceLocation;
using Caliburn.Castle;
using Castle.MicroKernel.Registration;
using WPFApp.Presenters.Interfaces;
using WPFApp.Presenters;
修改和添加App类
public partial class App { //声明一个容器_container private WindsorContainer _container; public App() { RegisterComponents(); } protected override IServiceLocator CreateContainer() { _container = new WindsorContainer();//实例化容器 return new WindsorAdapter(_container);//注入容器 } private void RegisterComponents() {//注入所有有关的页面 _container.Register(Component.For<IHelloCaliburnPresenter>()//通过接口的方式注入容器 .ImplementedBy<HelloCaliburnPresenter>()//注册Presenter .LifeStyle.Singleton);//以单例模式运行。 } protected override object CreateRootModel() { return _container.Resolve<IHelloCaliburnPresenter>();//从刚才注入的容器中取数据 } }
在到HelloCaliburnView.xaml页面
<Button Content="Click Me" Height="23" Name="button1" Width="75" cal:Message.Attach="ShowMessage" />
后台代码要与之关联,我们把后台代码写在HelloCaliburnPresenter.cs中,因为我们通过Caliburn框架来实现了关联。
public class HelloCaliburnPresenter : IHelloCaliburnPresenter { public HelloCaliburnPresenter() { } public void ShowMessage() { MessageBox.Show("Hello Caliburn"); } }
按F5运行效果:
![](http://images.cnblogs.com/cnblogs_com/dingli/201103/201103291021363621.png)
Code
相关文章推荐
- WPF Caliburn 学习笔记(三)Application Model
- WPF Caliburn 学习笔记(四) Message Triggers
- WPF Caliburn 学习笔记(一) Action
- WPF Caliburn 学习笔记(二)Command
- WPF Caliburn 学习笔记(二)Command(2)
- WPF Caliburn 学习笔记(一)Action 续
- wpf学习笔记 NotifyPropertyChanged实现数据变化自动更新UI
- wpf学习笔记-指定数据源
- WPF and Silverlight 学习笔记(十三):依赖项属性和路由事件
- WPF and Silverlight 学习笔记(二十八):基本图形的使用(3)图形的操作
- [LUA学习笔记01]用VS2003(C++)编译Hello Lua程序
- WPF开发学习笔记
- Java的中文处理学习笔记:Hello Unicode
- WPF学习笔记7: 附加属性(Attached Property)
- WPF 学习笔记2
- 【WPF学习笔记】之如何设置下拉框读取SqlServer数据库的值:动画系列之(一)
- JavaWeb学习笔记——开发动态WEB资源(二)HelloWord
- WPF 学习笔记 - 11. Binding (4)
- Caliburn笔记-元数据(Metadata)管理(wpf框架)
- 2013/08/19 C# WPF 学习笔记