随笔分类 -  MVVM

摘要:基于以下的理由,ViewModel也是需要多个,并且需要被注入的:1:设计时和运行时需要为View提供不同的数据简单来说,就是设计时需要模拟数据。界面设计开发人员需要进行绑定(包括支持Expression Blend绑定)做一些简单的处理,同时因为提供了模拟数据,UI人员可以更好的设计实际的界面。2:为了方便单元测试在运行时,大部分情况下,ViewModel会组合进提供Service的业务类。在简单的应用中,我们可以注入Service类的MOCK来进行单元测试,如果是这样,就可以避免提供多个ViewModel。但在有些应用中,如Silverlight应用中,服务由WerbService、WCF 阅读全文
posted @ 2011-08-11 09:09 陆敏技 阅读(4971) 评论(4) 推荐(0) 编辑
摘要:XAML的调试历来是较为繁琐且不方便的,处理稍有不慎或者初学者通过在VS中手写绑定代码,极度容易写出不规范的绑定代码。所以,我们对于团队成员在此方面的唯一要求就是:使用Expression Blend处理ViewModel绑定。不然,你就会常常听到团队成员烦躁:太奇怪了,我绑定对啊,为什么总是出不来值。没错,“太奇怪了”,是开发人员的一种呻吟。一:ViewModel和当前页面的绑定采用绑定的措施,下面的代码是要极力避免的。这样的代码通常出现在Code Behind中:我们需要VM在前台XAML中生成实例。具体步骤如下:1:去除红框内的代码;2:为页面指定DataContext首先是选中最上层的 阅读全文
posted @ 2011-07-01 16:18 陆敏技 阅读(3344) 评论(25) 推荐(7) 编辑
摘要:1:项目结构图2:控件SilverlightControl1前台:后台: public partial class SilverlightControl1 : UserControl { public SilverlightControl1() { InitializeComponent(); } public static readonly DependencyProperty StudentProperty = DependencyProperty.Register("Student", typeof(Student), typeof(SilverlightContro 阅读全文
posted @ 2011-06-09 13:53 陆敏技 阅读(3831) 评论(1) 推荐(1) 编辑
摘要:在上一篇《使用MVVM模式开发自定义UserControl》中,有一个重要的补充内容,就是WPF中的EventTrigger和命令绑定,在本篇中继续阐述。如果单纯在Button中使用命令绑定,则其本身就带有Command属性,但是扩展到任何其它控件,就得稍微复杂一点。以本篇来讲,依赖于我们拥有如下两个dll:Microsoft.Expression.Interactions.dllSystem.Windows.Interactivity.dll这两个dll在装完毕expression blend后会出现在引入列表中。不过,即便我们没有装blend,也可以直接从其它地方COPY过来。在本例中,它 阅读全文
posted @ 2011-06-07 22:30 陆敏技 阅读(25719) 评论(8) 推荐(3) 编辑
摘要:本篇讲述使用MVVM来开发用户控件。由于用户控件在大部分情况下不涉及到数据的持久化,所以如果将M纯粹理解为DomainModel的话,使用MVVM模式来进行自定义控件开发实际上可以省略掉M,变成了VVM。一:基本结构本演示样例包含两个项目,WpfControls是用户控件项目,我们的用户控件全部包含在这里。项目WpfApplication1是Wpf窗体项目,为调用方。我们的第一步的整体解决方案结构如下所示:二:第一阶段源码建立UserControl1,要求能够对输入属性StudentName和Age,做出反应,即呈现在UI上。首先创建ViewModel,即StudentViewModel: p 阅读全文
posted @ 2011-06-06 22:11 陆敏技 阅读(12680) 评论(2) 推荐(2) 编辑
摘要:前台:<UserControl x:Name="msl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.o 阅读全文
posted @ 2011-06-06 20:17 陆敏技 阅读(1551) 评论(0) 推荐(0) 编辑
摘要:继续重构上一篇《Prism安装、MVVM基础概念及一个简单的样例》中的事例,在这一篇里我们将让命令绑定支持带方法参数。这是非常重要的一个编码需求。为了让本例支持更复杂的应用场景,我们这次要针对一个列表进行操作。1:建立领域模型public class StudentTeam: NotificationObject { string teamName; public string TeamName { get { return teamName; } set { teamName = value; this.RaisePropertyChanged(() => this.TeamName) 阅读全文
posted @ 2011-05-30 08:48 陆敏技 阅读(12729) 评论(13) 推荐(8) 编辑
摘要:一:Prism的下载和安装1:在http://compositewpf.codeplex.com/上下载最新的包。下载完毕后,运行之,选择解压目录解压之。解压完毕的根目录下有chm帮助文档。2:运行RegisterPrismBinaries.bat注册Prism组件,注册完毕才能在VS的引用中直接找... 阅读全文
posted @ 2011-05-27 17:41 陆敏技 阅读(17811) 评论(10) 推荐(5) 编辑

Web Counter
Coupon for Contacts