Caliburn笔记-Presenter与View(视图策略)(wpf框架)

参考:http://caliburn.codeplex.com/wikipage?title=View%20Strategies&referringTitle=Documentation   

来看下presenter是怎么与view分开的,calbiburn把view和presenter分的很彻底,view很干净,presenter也很干净,几乎感觉不到他们两有关系.这一点感觉设计的非常不错.与asp.net mvc有异曲同工之处.asp.net mvc通过controller的result去寻早view,presenter则与view也有默认的规则。

ViewStrategy

 

image


即视图查找策略,即根据Presenter的名字然后与View名字相对应去匹配

如ContactManager.Presenters.ShellPresenter则会生成以下View匹配规则.只要匹配到一个即可image

来看下项目View的目录结构,Ok,匹配到第2条

image

在DefaultWindowManager有一个代码片段

var view = EnsureWindow(rootModel, _viewStrategy.GetView(rootModel, null, context));


现在可以知道View与Presenter的转换过程了.

自定义视图策略

 

image
除了默认查找规则外,还可以通过元数据标签来实现自定义视图策略.如

[ViewAttribute(typeof(Window1))]
[Singleton(typeof(IShellPresenter))]
public class ShellPresenter : Navigator, IShellPresenter
{
}


处理的代码片段

var customStrategy = modelType.GetCustomAttributes(typeof(ViewStrategyAttribute), true)
    .OfType<ViewStrategyAttribute>().Where(x => x.Matches(context)).FirstOrDefault();

if (customStrategy != null)
    return customStrategy.GetView(model, displayLocation, context);


 

视图与WPF


caliburn提供了View的附加属性,可以通过设置Presenter通过视图策略找到View,然后赋给当前的View

<ContentControl cal:View.Model="{cal:Resolve info:IQuestionPresenter}" />


如上Resolve是个自定义的标记扩展,用于在依赖注入容器中寻找,这个应用在这个xaml中使用恰到好处.


个人认为这部分设计的不错.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF(Windows Presentation Foundation)是一种用于创建Windows桌面应用程序的用户界面框架,而Caliburn.Micro是一种针对WPF应用程序的轻量级MVVM框架。通过结合使用这两个框架,可以更高效地编写WPF应用程序的界面和逻辑部分。 一个基本的WPF Caliburn.Micro框架编写案例可以是一个简单的待办事项列表应用程序。首先,我们可以创建一个WPF应用程序,并添加Caliburn.Micro框架的引用。然后,我们可以定义待办事项的模型,包括待办事项的名称、描述和状态等属性。 接下来,我们可以使用Caliburn.Micro框架提供的ViewModelBase类来创建一个待办事项的视图模型。在视图模型中,我们可以定义与界面交互的属性和命令,比如显示待办事项列表、添加新的待办事项、标记已完成的待办事项等功能。 然后,我们需要创建一个WPF视图,用于显示待办事项列表和与用户进行交互。在视图中,我们可以绑定视图模型中的属性和命令,并使用WPF的控件来显示和编辑待办事项。 最后,我们将视图模型绑定到视图上,使得视图视图模型能够实现双向的数据绑定和命令绑定。这样,当用户在界面上进行操作时,视图视图模型之间的数据和行为可以实现同步。 通过这样一个简单的案例,我们可以看到WPF Caliburn.Micro框架编写的优势,它能够帮助我们更快速和高效地构建WPF应用程序,并实现良好的界面和逻辑分离。同时,借助MVVM架构,我们也能够实现更好的代码可读性和可维护性。 WPF Caliburn.Micro框架编写案例的实践将有助于我们更好地理解和运用这些框架,提升WPF应用程序的开发效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值