摘要: 共享代码 WCF RIA Services允许我们编写在中间层和表示层之间共享的应用逻辑。可以共享源文件或程序集中的代码。和在客户端代码生成主题中描述的自动代码生成方法不同,共享代码在编译时时不能改动的。相反,代码在层间是逐字地拷贝或共享的。 共享代码WCF RIA Services允许我们编写在中间层和表示层之间共享的应用逻辑。可以共享源文件或程序集中的代码。和在客户端代码生成主题中描述的自动代码生成方法不同,共享代码在编译时时不能改动的。相反,代码在层间是逐字地拷贝或共享的。共享源文件可以在中间层添加源文件,然后明确指定这些文件在表示层中共享。有两种方法来在层之间共享源文件。第一种方式是. 阅读全文
posted @ 2011-09-09 10:09 Areas 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 如何:通过源文件来共享代码 我们可以通过源文件来在中间层和表示层之间共享代码。当在中间层修改源文件,并重新生成应用程序时,在客户端会自动同步更新了的代码。当代码不属于domain Service或实体类,而且我们不想代码经历客户端代码生成步骤时,我们把代码放在共享 如何:通过源文件来共享代码我们可以通过源文件来在中间层和表示层之间共享代码。当在中间层修改源文件,并重新生成应用程序时,在客户端会自动同步更新了的代码。当代码不属于domain Service或实体类,而且我们不想代码经历客户端代码生成步骤时,我们把代码放在共享的源文件中。通过使用共享命名规范或文件链接来共享源文件。下面示例使用这. 阅读全文
posted @ 2011-09-09 10:09 Areas 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Silverlight客户端 使用WCF RIA Services,我们可以创建一个当数据交互时知道中间层应用逻辑的Silverlight客户端。还可以对可见的和可编辑的数据提供用户接口,来在提交数据修改之前应用验证规则。我们的SL控件将会使用从中间层代码自动生成类。次章节介绍SL客户端如何使用domain context, 如何与数据一起工作,以及如何自 Silverlight客户端使用WCF RIA Services,我们可以创建一个当数据交互时知道中间层应用逻辑的Silverlight客户端。还可以对可见的和可编辑的数据提供用户接口,来在提交数据修改之前应用验证规则。我们的SL控件将会. 阅读全文
posted @ 2011-09-09 10:09 Areas 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 客户端代码生成 当我们使用RIA Services连接中间层和表示层时,RIA Services为客户端项目生成了客户端代理类,这些类是以中间层公开的实体和操作为基础的。因为RIA Services生成了这些类,所以我们不必再复制这些中间层和表示层中的应用逻辑。因为我们对中间层所做的任 客户端代码生成当我们使用RIA Services连接中间层和表示层时,RIA Services为客户端项目生成了客户端代理类,这些类是以中间层公开的实体和操作为基础的。因为RIA Services生成了这些类,所以我们不必再复制这些中间层和表示层中的应用逻辑。因为我们对中间层所做的任何修改,在重新生成客户端项. 阅读全文
posted @ 2011-09-09 10:09 Areas 阅读(271) 评论(0) 推荐(0) 编辑
摘要: WCF RIA Services允许我们创建数据模型来综合从数据访问层得到的不同实体数据。这个模型就是表示模型。当我们不想把数据层的数据直接公开给客户端时,会使用这个特性。当使用表示模型时,可以只修改表示模型而不是客户端来回应数据访问层中的改动。还可以设计一个综合那 WCF RIA Services允许我们创建数据模型来综合从数据访问层得到的不同实体数据。这个模型就是表示模型。当我们不想把数据层的数据直接公开给客户端时,会使用这个特性。当使用表示模型时,可以只修改表示模型而不是客户端来回应数据访问层中的改动。还可以设计一个综合那些仅与客户端用户相关的字段的模型,来简化客户端代码。创建表示模型. 阅读全文
posted @ 2011-09-09 10:08 Areas 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 数据模型中的继承 WCF RIA Services允许我们使用做为继承体系中的一部分的实体。一个继承模型包含了一个从其他数据类派生的数据类。例如,一个多态继承模型可以包含一个Customer实体和两个从Customer派生的实体(PublicSectorCustomer和PrivateSectorCustomer)。通过RI 数据模型中的继承WCF RIA Services允许我们使用做为继承体系中的一部分的实体。一个继承模型包含了一个从其他数据类派生的数据类。例如,一个多态继承模型可以包含一个Customer实体和两个从Customer派生的实体(PublicSectorCustomer和. 阅读全文
posted @ 2011-09-09 10:08 Areas 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 如何验证数据 我们对实体和成员属性添加验证属性来实施验证规则。WCF RIA Service提供了几个验证属性来执行常用的验证检测,还提供了CustomValidationAttribute属性来执行自定义的验证检测。 如何验证数据我们对实体和成员属性添加验证属性来实施验证规则。WCF RIA Service提供了几个验证属性来执行常用的验证检测,还提供了CustomValidationAttribute属性来执行自定义的验证检测。在RIA Service中包含了如下的验证属性:DataTypeAttributeRangeAttributeRegularExpressionAttribute. 阅读全文
posted @ 2011-09-09 10:07 Areas 阅读(312) 评论(0) 推荐(0) 编辑
摘要: 如何自定义解决数据并发性冲突 WCF RIA Services框架把原值和更改后的值一起传递给数据访问层。这就允许数据访问层在提交数据更改之前检测数据并发性冲突。数据访问层是通过检测数据源中的当前值是否与Domain操作中检索到的值一致来判断冲突的。 我们可以为一个特定的实 如何自定义解决数据并发性冲突WCF RIA Services框架把原值和更改后的值一起传递给数据访问层。这就允许数据访问层在提交数据更改之前检测数据并发性冲突。数据访问层是通过检测数据源中的当前值是否与Domain操作中检索到的值一致来判断冲突的。我们可以为一个特定的实体自定义如何解决数据并发性冲突,这个方法在冲突确认时. 阅读全文
posted @ 2011-09-09 10:07 Areas 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 层的组成 WCF RIA Services允许我们为具有层次概念的数据类创建应用逻辑,例如SalesOrderHeader实体和SalesOrderDetail实体。这样相关实体就组成了所谓的层次。定义了类之间的组成关系后,就可以像操作一个单一个体一样来操作对实体的数据修改,而不是像操作独立实体那 层的组成WCF RIA Services允许我们为具有层次概念的数据类创建应用逻辑,例如SalesOrderHeader实体和SalesOrderDetail实体。这样相关实体就组成了所谓的层次。定义了类之间的组成关系后,就可以像操作一个单一个体一样来操作对实体的数据修改,而不是像操作独立实体那样. 阅读全文
posted @ 2011-09-09 10:07 Areas 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 如何添加元数据类 WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。 如何添加元数据类WCF RIA Services支持对实体类和成员的批注。批注是通过叫做元数据类的局部类来实施的。当我们想批注一个生成的实体类,并在重新生成这个实体类时不想丢失这些批注,我们使用元数据类。通过使用[MetadataTypeAttribute]属性来指定一个元数据类。有两种方式来添加元数据类。一种. 阅读全文
posted @ 2011-09-09 10:03 Areas 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 如何在Domain Services中添加商业逻辑 即使在Domain Services中已经包含了更新、插入、删除等操作,但我们还是经常需要添加一些商业逻辑来管理那些修改数据的过程。还可能需要添加一些有别于传统的新的查询、更新等操作。这节中,我们将学习如何修改数据操作来满足商业 如何在Domain Services中添加商业逻辑即使在Domain Services中已经包含了更新、插入、删除等操作,但我们还是经常需要添加一些商业逻辑来管理那些修改数据的过程。还可能需要添加一些有别于传统的新的查询、更新等操作。这节中,我们将学习如何修改数据操作来满足商业要求,还学习如何添加一个命名的更新na. 阅读全文
posted @ 2011-09-09 10:02 Areas 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 当我们在RIA客户端提供更新、删除、创建新数据等接口时,经常需要在提交更改之前确定用户输入的数据是有效的并且对数据源来说是最新的。WCF RIA Services提供了几个特性,来允许我们检查数据的有效性以及确定数据与客户端代码的并发性。还提供像使用单一数据实体那样与复杂的数据关系交互的特性。 数据批注 当使用数据类时 当我们在RIA客户端提供更新、删除、创建新数据等接口时,经常需要在提交更改之前确定用户输入的数据是有效的并且对数据源来说是最新的。WCF RIA Services提供了几个特性,来允许我们检查数据的有效性以及确定数据与客户端代码的并发性。还提供像使用单一数据实体那样与复杂的数. 阅读全文
posted @ 2011-09-09 10:02 Areas 阅读(325) 评论(0) 推荐(0) 编辑
摘要: Domain Services 是向客户端公开数据访问层的WCF Services。当我们创建一个domain services实例时,就指定了想要公开的实体类,以及这个domain Services所允许的数据操作。 DomainService类 和派生类 DomainService类是所有做为domain Services的服务类的基类。WCF RIA Domain Services 是向客户端公开数据访问层的WCF Services。当我们创建一个domain services实例时,就指定了想要公开的实体类,以及这个domain Services所允许的数据操作。DomainServ. 阅读全文
posted @ 2011-09-09 10:01 Areas 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 演练:添加查询方法 查询数据源的方法有时被叫做查询方法。在WCF RIA Services中,查询方法必须以框架承认的方式来定义。此外,只返回一个实体的查询和有可能返回多个实体的查询定义是不同的。 当我们建立一个新的domain service类并在Add New Domain Service Class 对 演练:添加查询方法查询数据源的方法有时被叫做查询方法。在WCF RIA Services中,查询方法必须以框架承认的方式来定义。此外,只返回一个实体的查询和有可能返回多个实体的查询定义是不同的。当我们建立一个新的domain service类并在Add New Domain Servi. 阅读全文
posted @ 2011-09-09 10:01 Areas 阅读(403) 评论(0) 推荐(0) 编辑
摘要: RIA Services 类库允许我们创建能够重复使用的中间层和表现层逻辑。然而,使用RIA Services类库要比创建RIA Services解决方案复杂的多。 在本节演练中,将创建一个拥有RIA Services类库代码的SL应用程序。简单起见,把类库放在了SL应用程序相同的解决方案里。当然,类库也可以放在分开的解决方案中。 创建包含WCF RIA Serv RIA Services 类库允许我们创建能够重复使用的中间层和表现层逻辑。然而,使用RIA Services类库要比创建RIA Services解决方案复杂的多。在本节演练中,将创建一个拥有RIA Services类库代码的SL. 阅读全文
posted @ 2011-09-09 10:00 Areas 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 在3-层结构的应用程序中,中间层包含了如何管理在表示层和数据层之间交互的逻辑。我们在中间层应用商业逻辑和验证来确定数据是可接受的。例如,在人力资源应用程序中,我们可以提供一个允许员工提交休假申请的界面,但我们应该确定员工的可休假额度不小于0。因此,我们 在3-层结构的应用程序中,中间层包含了如何管理在表示层和数据层之间交互的逻辑。我们在中间层应用商业逻辑和验证来确定数据是可接受的。例如,在人力资源应用程序中,我们可以提供一个允许员工提交休假申请的界面,但我们应该确定员工的可休假额度不小于0。因此,我们在提交申请之前,在中间层添加逻辑来检测员工的休假额度。为了创建最好的RIA客户端用户体验,例. 阅读全文
posted @ 2011-09-09 10:00 Areas 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 当创建一个新WCF RIA Services解决方案时,你将会在客户端和服务端之间指定一个RIA Services Link。当然我们也可以在已存在的项目中添加和移除Link。 当创建一个新WCF RIA Services解决方案时,你将会在客户端和服务端之间指定一个RIA Services Link。当然我们也可以在已存在的项目中添加和移除Link。在已存在项目中添加RIA Services Link在资源管理器中,在Silverlight客户端上右键点击,并选择属性。在 WCF RIA Services link 下拉单中,选择想用来当中间层的服务端项目。从项目中移除RIA Servic. 阅读全文
posted @ 2011-09-09 09:56 Areas 阅读(314) 评论(0) 推荐(0) 编辑
摘要: SL商业应用程序模板创建一个自动包含许多你所想要的特性的应用程序,例如用户登录和注册的控件。这个项目还建立SL导航,这就意味着你能够方便的添加新的SL页来添加新功能。 默认的情形下,SL商业应用程序模板允许身份认证、角色和Profiles。 SL商业应用程序模板创建一个自动包含许多你所想要的特性的应用程序,例如用户登录和注册的控件。这个项目还建立SL导航,这就意味着你能够方便的添加新的SL页来添加新功能。默认的情形下,SL商业应用程序模板允许身份认证、角色和Profiles。在这个演练中,学习如何用SL商业应用程序模板来创建WCF RIA Services。在VS中,选择文件->新建项目 阅读全文
posted @ 2011-09-09 09:56 Areas 阅读(294) 评论(0) 推荐(1) 编辑
摘要: 在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。 在本节,我们将进行一个演练。我们创建一个WCF RIA Services 应用,此应用从AdventureWorksLT 数据库中检索数据。我们会用SL来创建表现层的客户端,并创建表现不同数据库表的实体类。此节需要:Visual Studio 2008Silverlight 3WCF RIA Services Beta for visual Studio 2008 SP1-or-Visu. 阅读全文
posted @ 2011-09-09 09:55 Areas 阅读(577) 评论(1) 推荐(0) 编辑
摘要: WCF RIA Services简化了N层结构的RIA应用程序的开发,例如Silverlight应用。当开发一个N层结构的RIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。为了建立更好的用户体验,你可能想要你的RIA客户端了解在服务器上的应用逻辑,但并不想开发和维护在 WCF RIA Services简化了N层结构的RIA应用程序的开发,例如Silverlight应用。当开发一个N层结构的RIA应用程序时,一个通常的问题就是在中间层和表现层之间协调应用逻辑。为了建立更好的用户体验,你可能想要你的RIA客户端了解在服务器上的应用逻辑,但并不想开发和维护在表现层和中间层上的应. 阅读全文
posted @ 2011-09-09 09:54 Areas 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 上节大概介绍了一下 WCF RIA 服务, 这次介绍下整个解决方案的结构。 当创建应用程序时,WCF RIA服务可以帮你建立满足各种各样情况的解决方案。例如只是在中间层访问很少domain services的Silverlight应用程序。更复杂的例子可能是几个Silverlight程序都连接到一个提供 上节大概介绍了一下 WCF RIA 服务, 这次介绍下整个解决方案的结构。当创建应用程序时,WCF RIA服务可以帮你建立满足各种各样情况的解决方案。例如只是在中间层访问很少domain services的Silverlight应用程序。更复杂的例子可能是几个Silverlight程序都连接. 阅读全文
posted @ 2011-09-09 09:54 Areas 阅读(454) 评论(0) 推荐(0) 编辑
摘要: ****Model-View-ViewModel (better known by its super hero alias of MVVM ) is a great pattern to use with Silverlight and WPF. Here is my 5 minute perspective on MVVM (yep, it took me 5 minutes to spit this out too, so please be kind on any typos :-) )One of the things that can be frustrating with any 阅读全文
posted @ 2011-09-08 13:23 Areas 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 1. IntroductionWhatever software application you want to create, the most important problem that must be solved is the tight coupling. Mixing one layer with another is a very common mistake and it is the main reason for your application to be tightly coupled. For example: as a practical example in t 阅读全文
posted @ 2011-09-08 10:40 Areas 阅读(375) 评论(0) 推荐(0) 编辑
摘要: 在前面的Silverlight入门系列文章中穿插讲了一些MVVM模式系列文章,MVVM模式貌似简单,其实要把界面逻辑抽象出来还是很不容易,像《TreeView真正实现MVVM模式和Expanded发生时异步动态加载子节点(WCFRiaService)》就不是这么简单,有的童鞋像feiyang还要实现Treeview的展开状态持久化和自动恢复,配合MVVM实现不容易。所以,MVVM的核心概念理解不难,在具体使用上则问题多多。今天要讲的话题就是一个MVVM使用上的具体问题: Silverlight中的Storyboard动画是否可以在ViewModel中来控制?为什么想在ViewModel中控制S 阅读全文
posted @ 2011-09-07 16:12 Areas 阅读(645) 评论(0) 推荐(0) 编辑
摘要: [Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画?(2011-09-07 16:12)[Silverlight入门系列]使用MVVM模式(8):ViewModel进一步分离出Services(2011-09-07 15:29)[Silverlight入门系列]使用MVVM模式(7):ViewModel的INotifyPropertyChanged接口实现(2011-09-07 15:28)[Silverlight入门系列]使用MVVM模式(6):使用Behavior(2011-09-07 15:25)[Silverlight入门系 阅读全文
posted @ 2011-09-07 15:38 Areas 阅读(314) 评论(0) 推荐(1) 编辑
摘要: Siverlight5新功能/改进总结参考资料:The Big List of What’s New or Improved in Silverlight 5以下总结包括大家关心的Silverlight5的绝大多数新功能或改进,特别是Silverlight5 RC中的新玩意。数据绑定相关 ICustomTypeProvider 自定义标记扩展(Custom Markup Extensions) Ancestor RelativeSource 绑定 隐式 Data Templates 绑定到Style的Setter DataContextChanged 事件 UpdateSourc... 阅读全文
posted @ 2011-09-07 15:30 Areas 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 在上一讲中介绍了MVVM的核心概念,运用MVVM模式可以分离视图、视图逻辑和模型,提高可测试性和可维护性等,但如果一个视图比较复杂,仔细Review一下其ViewModel你会发现非常庞大臃肿复杂,而且部分代码逻辑不可重用,例如另外一个ViewModel想重用其中的部分代码逻辑而不是整个重用,就没有办法。所以最好进一步分离ViewModel的关注点,分离出Services实现IServcie接口,让Service去做一些可重用的工作,分离出一些可重用的操作,这样其他的ViewModel就可以用Service来重用ViewModel的部分逻辑了。原来的ViewModel关注点可以聚焦在用户界面交 阅读全文
posted @ 2011-09-07 15:29 Areas 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 本文说说ViewModel的这个INotifyPropertyChanged接口可以用来做啥?举例1:我有个TabControl,里面放了很多View,每个由ViewModel控制,我想是想TabSelectionChanged就打开相应的ViewModel,怎么做?解答:用ViewModel的INotifyPropertyChanged接口实现,因为TabItem作为一个选择器就有 IsSelected属性,把这个属性绑定到ViewModel的IsSelected字段,然后这个字段改变的时候用INotifyPropertyChanged接口实现通知即可。整个流程用MVVM实现非常整洁。Xam 阅读全文
posted @ 2011-09-07 15:28 Areas 阅读(396) 评论(0) 推荐(0) 编辑
摘要: Behavior把一些常用的行为封装成可重复使用的组件(Component),在理想状况下,Designer(设计师)或domain expert(特定领域的专家,例如财会人员、HR人员、或MIS)甚至可以完全不需要具备程序设计的观念,只需要了解基础的事件(Event)观念,就可以顺利的开发出一套系统,若需要实现特定的功能时,可商请developere为他们开发所需要的Behavior,designer只需要取得这些Behavior并使用即可。例如,界面设计人员可以使用Expression Blend把一个Behavior拖到一个界面元素上,比如右键点击以后启动一段动画这个行为,这个界面元素就 阅读全文
posted @ 2011-09-07 15:25 Areas 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 在上一篇写了Model的INotifyPropertyChanged接口实现,在Prism中有一个NotificationObject自动实现了这个接口,位于Microsoft.Practices.Prism.ViewModel命名空间下。也就是说,Prism推荐ViewModel继承这个NotificationObject类来自动实现INotifyPropertyChanged接口。看看NotificationObject都有啥:1 public abstract class NotificationObject : INotifyPropertyChanged2 {3 prot... 阅读全文
posted @ 2011-09-07 15:21 Areas 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 数据验证(Validation)是界面程序的常见需求,例如使用正则表达式验证用户输入的Email地址是否合法,然后在界面给出错误提示信息。在Sivlerlight的MVVM模式中,我们在Model和ViewModel可以做Validation,然后需要把Model和ViewModel的Validation结果和错误信息通知视图(View)。在WPF中,我们使用IDataErrorInfo,在Silverlight4中,建议使用INotifyDataErrorInfo。关于这个接口怎么使用,如何实现ErrorProvider的功能,如何做DataForm的Validatio,请参考我的旧一篇。I 阅读全文
posted @ 2011-09-07 15:21 Areas 阅读(536) 评论(0) 推荐(0) 编辑
摘要: INotifyCollectionChanged在上一篇讲了《[Silverlight入门系列]使用MVVM模式(1):MVVM核心概念 》,今天讲一下集合Model。所谓集合Model就是给ItemsControl,如DataGrid,Combobox等绑定的集合数据模型。另外,通过定制ItemsControl的数据模板(DataTemplate),还可以控制集合对象中每一项的显示。实现很简单,但数据源集合对象必须继承IEnumerable接口,为了让目标属性与数据源集合的更新(不但包括元素的修改,还包括元素的增加和删除)保持同步,数据源集合还必须实现INotifyPropertyChang 阅读全文
posted @ 2011-09-07 15:20 Areas 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作。INotifyPropertyChanged接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知。例如,考虑一个带有名为FirstName属性的Person对象。若要提供一般性属性更改通知,则Person类型实现INotifyPropertyChanged接口并在FirstName更改时引发PropertyChanged事件。若要在将客户端与数据源进行绑定时发出更改通知,则绑定类型应具有下列功能:实现INotifyPropertyCha 阅读全文
posted @ 2011-09-07 15:20 Areas 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 编辑器加载中...MVVM模式是Model、View、ViewModel的简称,最早出现在WPF,现在Silverlight中也使用该模式,MVVM模式是对MVC模式的变种。哪儿变了?我认为MVVM和MVC的主要变化在于MVVM更适合于XAML。MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大好处1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model不可以不变,当Model变化的时候View也可以不变。2. 可重用性。你可以把一些视图逻辑放在一 阅读全文
posted @ 2011-09-07 15:19 Areas 阅读(1000) 评论(0) 推荐(0) 编辑
摘要: Silverlight入门:第一部分 - 开发工具与程序入门Silverlight入门:第二部分 - 定义界面布局和导航Silverlight入门:第三部分 - 数据访问Silverlight入门:第四部分 - 数据绑定Silverlight入门:第五部分 - 整合其它控件Silverlight入门:第六部分 - 美化用户界面的样式与模板Silverlight入门:第七部分 - 脱离浏览器的经验 阅读全文
posted @ 2011-09-07 14:16 Areas 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 我们已经有了一个功能完备但还可以锦上添花的应用程序。让我们使搜索结 果模板更漂亮一些。我们准备在Search.xaml的数据模板中为ItemControls做一 些修改。这些修改就像我们已经使用过的编辑模板功能一样可以在Blend中完成。应用 了新的用户界面样式看起来会像这样:我们可以注意到模板风格更精致了,却没有影响到原来的代码。虽然最后它 将会输出大量的代码,但是我可以给你指出最终项目中的样式的位置。应用样式和模板与绑定数据和模板很相像。如果我们观察一下ScrollViewer 的状态:1 <ScrollViewer Style="{StaticResource scrol 阅读全文
posted @ 2011-09-07 14:14 Areas 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 在本系列的最后一节中,我们准备让应用程序脱离浏览器运行。这会比你想 象的容易很多。创建清单在Visual Studio中右击Silverlight应用程序项目,并且选择属性,你将会 看到一个弹出的对话框——注意有关脱离浏览器设置的多选框:当你点击以后需要完成一些选项:为你的应用程序设置安装或脱离浏览器运行时的可视化信息是非常重要的。* 窗体标题——显示在应用程序的窗体标签中* 宽/高——应用程序启动时的初始宽度和高度* 快捷方式名称——用于在桌面和开始菜单中显示的名称* 下载说明——应用程序的说明* 图标——必须是PNG格式同时还必须在项目中标记为Content在你完成这些配置以后,让我们为你 阅读全文
posted @ 2011-09-07 14:14 Areas 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 在之前的第三部分中,我们做了很多工作来获取公共Web服务返回的数据并让 其显示在控件中。我们已经用过了DataGrid控件,但它并不是我们真正想要的用 户界面,所以让我们自己来定义一个。为此,我们需要一个ItemsControl和一个 DataTemplate。这将让我们学习到XAML的绑定语法,以及如何利用更强大的数据 绑定信息。在开始之前——先删除DataGrid在开始之 前,让我们先删除并且只删除DataGrid,我们也不再需要它的程序集引用以及 xmlns,所以也可以大胆删除它们。把DataGrid替换成ItemsControl,像 是这样:1 <ItemsControl x:N 阅读全文
posted @ 2011-09-07 14:13 Areas 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 在之前的章节中,我们优化了数据绑定,并将数据保存在了我们的独立存储 区域。现在让我们整合一些其它的控件使得用户体验更好一些。自动完成输入框记得每次搜索以后,我们都将搜索条件保存为历史数据吗?让我们通过在他 们输入时提供搜索历史来让他们使用更方便。我们准备用Silverlight工具包中 的一个控件——自动完成输入框来做这件事。要做到这点,我们需要添加一个到System.Windows.Controls.Input的程序集 引用,然后在你的Search.xaml文件中添加一个xmlns:1xmlns:input="clr- namespace:System.Windows.Contro 阅读全文
posted @ 2011-09-07 14:13 Areas 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 现在我们已经有了一个基础布局,同时也在上面放了一些控件,接下来让我 们开始获取数据。因为我们想要搜索Twitter上的内容,所以我们需要充分使用 他们提供的Web服务API。在继续之前,我要先说明在本次的应用程序中,我们不 会自己建立一个数据库或其它数据源,但是我要指出的是你有很多种方式可以通 过Silverlight访问数据。数据访问选项对于在Silverlight中访问数据,初学者的误解之一就是他们在Silverlight 中寻找ADO.NET类库。别找了,找不到的。记住,Silverlight是部署在互联网上 的客户端技术,你不能要求一个浏览器插件去直接访问你的数据库……除非你想 把数据 阅读全文
posted @ 2011-09-07 14:12 Areas 阅读(338) 评论(0) 推荐(0) 编辑