摘要: 看到“门面”这个词,大家一定都觉得很熟悉。不错,这个词正是借用了我们日常生活中的“门面”的概念。日常生活中的“门面”,正是我们买东西的地方。因此可以这么说,“门面”就是这么一个地方,它们跟各种商品的生产商打交道,收集商品后,再卖给我们。换句话说,如果没有“门面”,我们将不得不直接跟各种各样的生产商买商品;而有了“门面”,我们要买东西,直接跟“门面”打交道就可以了。 Facade模式正是这样一个“门面”:我们本来需要与后台的多个类或者接口打交道,而Facade模式是客户端和后台之间插入一个中间层——门面,这个门面跟后台的多个类或接口打交道,而客户端只需要跟门面打交道即可。使用Facade模式可以 阅读全文
posted @ 2011-04-01 14:35 天神一 阅读(538) 评论(0) 推荐(1) 编辑
摘要: 要在MVVM架构下实现模式窗口(Modal Dialogs),首先,我们需要实现怎么显示模式窗口。幸运的是,不管是SilverLight3还是SilverLight4都提供了ChildWindow。当然,我们也可以使用第三方控件来实现。但是最重要的问题是怎么在MVVM架构中去实现模式窗口,即怎么在ViewMode中实现,同时要实现View层和ViewModel的松耦性,另外依照MVVM架构思想,ViewModel层不必知道View的样式,所以我们必须需要一个接口,例如下图从上图可以知道必须定义一个属性DialogResult,其作用就是确定View层上确定或者取消按钮是否被点击。还必须定义两个 阅读全文
posted @ 2011-01-05 20:41 天神一 阅读(12059) 评论(30) 推荐(11) 编辑
摘要: 大家在使用Silverlight开发的过程中,一定遇到过集合ListT、ObservableCollectionT和接口INotifyPropertyChanged,特别是集合ListT、ObservableCollectionT会经常遇到,但是大家有没有想到过他们之间的区别吗?大家一定知道在引用WCF的时候,系统默认使用的集合类型为ObservableCollectionT。  那么下面我就简单的介绍一下他们三者之间的异同之处。  ListT  ListT代表的是强类型的Ojbect集合,可以通过索引访问并且提供了查找、排序以及操作此集合的方法。ListT基本 阅读全文
posted @ 2010-12-26 17:18 天神一 阅读(6121) 评论(9) 推荐(8) 编辑
摘要: 图1 View、ViewModel、Model之间的关系  在SilverLight或者WPF开发中,为什么要用MVVM架构  使用MVVM架构最大的好处是:开发人员在写程序的时候不需要做UI,而设计人员可以使用Microsoft Expression Blend 4+设计全部的UI并且不需要写任何代码。  主要的好处如下:  1、设计人员可以用设计工具很容易的设计UI,而且不需要写任何代码  2、你可以更好的设计UI,而且可以让即使不是开发人员使用。  3、可以先设计UI或者与开发同时设计。  4、当UI全部改变时,代码可以不改变。  为了达到以上要求。当你设计UI时,后台不能有任何代码。并 阅读全文
posted @ 2010-12-24 20:20 天神一 阅读(34550) 评论(16) 推荐(13) 编辑
摘要: 在使用MVVM架构时,我们会遇到各种各样的问题  其中一个很常见的问题就是如何在ViewModel层处理UI事件时在后台代码文件中不写任何代码。  在我这个例子中实现的是取得鼠标移动时的位置。  我的解决方法如下:  1、通过一个Behavior 取得关联对象的EventArgs,代码如下[代码]  2、写一个类,包含的属性有事件源、EventArgs和对象,代码如下[代码]  3、为对象添加Behavior  在我的这个例子中,我对Rectangle添加新建的类ExtendedInvokeCommandAction(即Behavior)  4、在ViewModel层把这个Behavior绑定 阅读全文
posted @ 2010-12-18 20:29 天神一 阅读(4061) 评论(3) 推荐(5) 编辑
摘要: XNA 4.0 Game Development by Example:Beginner's GuideXNA框架不仅能为Windows Phone开发应用,还能为Windows和Xbox 360开发游戏,就是说你可以用同一种语言同时为PC机,游戏机,手机编写应用或游戏.本书书以四个游戏实例来对游戏开发中遇到的不同层面的问题展开描述,是初学者很好的书籍电子书下载:http://uploading.com/files/ee2ce3d4/1849690669XNA.rar/ 阅读全文
posted @ 2010-12-14 15:26 天神一 阅读(1011) 评论(0) 推荐(2) 编辑
摘要: 在开发Silverlight项目时,如果使用了MVVM架构时,可以实现业务逻辑与界面的完全分离。事件可以通过实现接口ICommand达到效果,比如:Button控件,如果要实现单击效果时,可以通过绑定Command即可。  但是如果需要实现鼠标离开Button事件怎么实现呢,就这是今天需要讨论的问题=》多事件实现  项目架构如下图:    我今天主要用Button做实验,来实现Button控件的单击事件和鼠标离开事件。这在非MVVM架构下非常容易实现。但是在MVVM架构,我们需要引用System.Windows.Interactivity.dll,此动态库存放的位置为C:\Program Fi 阅读全文
posted @ 2010-12-08 20:12 天神一 阅读(3037) 评论(2) 推荐(5) 编辑
摘要: 在有一些项目中,UI界面上的控件有时是在程序运行时才生成的。这样的功能在MVVM中也很容易实现。并且可以通过按钮取得其值。  本实例主要实现程序运行时,在界面上生成四个控件,两个TextBox和两个TextBlock.并且点击按钮时,弹出TextBox中的值。如下图效果  实现方法分以下步骤  第一步:新建一个SivlerLight应用程序,命名为AutoCreatControl  第二步:新建一个ViewModel层,工程名为ViewModel  整个项目结构如下图    通过上面的项目结构图,大家知道需要新建什么文件了  第三步:在工程ViewModel新建一个文件夹ViewModel,并 阅读全文
posted @ 2010-12-08 18:49 天神一 阅读(2655) 评论(4) 推荐(2) 编辑
摘要: 这篇文章主要展示在Silverlight4的应用程序中,用MVVM模式【编者注:如果你对MVVM模式不太理解,请先去熟悉一下关于这方面的资料】怎么打开一个子窗体(Child Window),怎么向子窗体传值,以及怎么从子窗体返回值到主窗体等等  我使用的方法不是严格意义上的MVVM模式,因为我实际上在ViewModel中实例化了子窗体,这通常很不方便的。但是在Google上找了好长时间,仅仅找到了打开子窗体的工具包的向导,我认为最好的方法就是亲自去实现它。我期望最方便且有严格意义上的MVVM的解决方案在SilverLight5中能够实现。  本篇文章只仅仅是一个概念的验证,并且是基于一个最简单 阅读全文
posted @ 2010-12-08 14:03 天神一 阅读(4428) 评论(0) 推荐(3) 编辑
摘要: 现在学习Windows Phone 7开发资料十分有限,除了MSDN的官方开发文档外和一些博客外,几无其他的学习渠道。幸运地是美国的资深程序员兼作家Charles Petzold为大家免费放出了他的最新大作—《Programming windows phone 7 series》。他以往写的书籍本本是经典,包括我们耳熟能详的《Windows 程序设计》一书。目前该书一共24章,,对Wi... 阅读全文
posted @ 2010-11-10 19:08 天神一 阅读(578) 评论(1) 推荐(1) 编辑