转自http://www.blogjava.net/wealupa/archive/2011/03/27/347112.html
本文和大家分享一下Silverlight 4 RIA Service dataform Template, 代码选择控件,Validate验证使用技巧
功能
定义只读,新增,编辑三块模块
定义模板的目的是更好的复用和提高XAML代码的可读性和可维护性,也可以更好的分工合作。下面是一个归并关系的维护界面。


主要有表头,多个表体组成,为了把所有操作尽量在一个页面中完成,表头使用一个DataForm空间,表体使用DataGrid和DataForm组合实现。
而DataForm有三种状态分别是只读(显示不可编辑),编辑,新增。因此我们需要为这三种模板来控制每个控件的布局和属性,比如只读状态下空间的IsReadOnly为True,编辑状态下,关键字字段的IsReadOnly为True,其他字段可以编辑,编辑状态使用选择控件方便输入,新增状态下,对于关键字段和必填字段需要用粗体字体显示(默认)或其他形式提醒操作用,这都需要在不同的模板中定于。
提示:布局使用Data Filed控件系统默认根据DataForm控件的状态改变Data Field编辑状态
下图是编辑状态下的布局

模板文件 
XAML代码 
自定义代码选择控件,快速输入控件
最常见的单机放大镜弹出所有记录选择后返回页面或是在一个TextBox中输入一个代码(料号)自动带出名称,单位,单价等信息实现快速输入。如果用asp.net需要写需要JavaScript代码,而使用Silverlight则非常容易就能实现。

XAML代码;
通过把需要带出的字段绑定到自定义控件上。
Silverlight代码
属性绑定代码

赋值代码 
为了提高代码的可读性,推荐使用匿名方法
类似的简单的CodeValue的选择使用AutoCompleted控件自己小改一下便可实现 
下面是实现代码,名称快速转换的实现,显示名称保存代码
定义一个Converter,和一个代码组的数据源

数据源继承一个接口方便转换时使用 
字段输入验证(唯一性验证)
通过对DomainService生成的metadata class的字段添加属性进行验证。为了更好维护对验证数据的提示信息,可以使用资源文件保存比如,验证支持特定属性和正则表达式,自定义验证


代码
唯一性验证
需要对提示用户输入的信息重复了

代码 

注意:这里需要添加一个编译条件,不然无法编译过去。
本文分享了Silverlight4中RIA服务数据模板、代码选择控件、验证功能的使用技巧,包括只读、新增、编辑模块的定义,以及模板的复用性、代码的可读性和维护性。介绍了如何通过布局和属性控制不同状态下的控件布局,以及如何实现代码选择和快速输入功能。此外,还详细讲解了唯一性验证和数据源绑定的实现方法。

被折叠的 条评论
为什么被折叠?



