WPF第八章绑定数据验证_第1页
WPF第八章绑定数据验证_第2页
WPF第八章绑定数据验证_第3页
WPF第八章绑定数据验证_第4页
WPF第八章绑定数据验证_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、通过代码实现数据绑定通过代码实现数据绑定,使用的是System.Windows.Data命名空间的Binding类,主要使用Binding类的如下的属性: Source属性:绑定到的数据源 Mode属性:绑定的模式(OneTime、OneWay、TwoWay、OneWayToSource或Default) Path属性:绑定到的数据源的属性 Converter属性:绑定时所使用的类型转换器 在绑定目标控件上使用SetBinding方法添加数据绑定。例如将MyData的Name属性绑定到txtName控件的Text属性上,使用MyColorConverter转换器将MyBindingColo

2、r的ColorObject属性绑定到rec控件的Fill属性上:1: MyData data = new MyData(;2:  3: Binding binding1 = new Binding(;4: binding1.Source = data;5: binding1.Mode = BindingMode.OneWay;6: binding1.Path = new PropertyPath("Name"7:  8: txtName.SetBinding(TextBox.TextProperty, binding1;9:  10: 

3、; 11: MyBindingColor color = new MyBindingColor(;12:  13: Binding binding2 = new Binding(;14: binding2.Source = color;15: binding2.Mode = BindingMode.OneWay;16: binding2.Path = new PropertyPath("ColorObject"17: binding2.Converter = new MyColorConverter(;18:  19: rec.SetBinding(Re

4、ctangle.FillProperty, binding2;二、实现绑定数据的验证:对于绑定数据的验证,系统采用如下的机制:使用 WPF 数据绑定模型可以将 ValidationRules 与 Binding 对象相关联。当绑定目标的属性向绑定源属性传递属性值时(仅限TwoWay模式或OneWayToSource模式),执行ValidationRule中的Validate方法,实现对界面输入数据的验证。定义验证可以采用以下三种: DataErrorValidationRule:检查由源对象的 IDataErrorInfo 实现所引发的错误,要求数据源对象实现System.ComponentM

5、odel命名空间的IDataErrorInfo接口。 例如,定义一个学生信息类,要求其学生成绩在0到100间,学生姓名的长度在2到10个字符间:1: public class StudentInfoWithValidation : IDataErrorInfo2: 3: #region 构造方法4: public StudentInfoWithValidation(5: 6: StudentName = "Tom"7: Score = 90;8: 9: public StudentInfoWithValidation(string m_StudentName,double

6、m_Score10: 11: StudentName = m_StudentName;12: Score = m_Score;13: 14: #endregion15:  16: #region 属性17: public string StudentName18: 19: get; set;20: 21: public double Score22: 23: get; set;24: 25: #endregion26:  27: #region 实现IDataErrorInfo接口的成员28: public string Error29: 30: get 31: 32: r

7、eturn null;33: 34: 35:  36: public string thisstring columnName37: 38: get39: 40: string result = null;41:  42: switch (columnName43: 44: case "StudentName":45: / 设置StudentName属性的验证规则46: int len = StudentName.Length;47: if (len < 2 | len > 1048: 49: result = "StudentNa

8、me length must between 2 and 10"50: 51: break;52: case "Score":53: / 设置Score属性的验证规则54: if (Score < 0 | Score > 10055: 56: result = "Score must between 0 and 100"57: 58: break;59: 60:  61: return result;62: 63: 64: #endregion65: 在界面上,定义两个TextBox绑定到StudentName和Score

9、两个属性上,并设置其采用DataErrorValidationRule:1: <Window x:Class="WPFDataBindingDemo.WinDataErrorValidationRuleDemo"2: xmlns="3: xmlns:x="4: xmlns:local="clr-namespace:WPFDataBindingDemo"5: Title="WinDataErrorValidationRuleDemo" Height="154" Width="300

10、">6: <Canvas Height="116" x:Name="mainCanvas">7: <Canvas.Resources>8: <local:StudentInfoWithValidation x:Key="myData" />9: Canvas.Resources>10: <Canvas.DataContext>11: <Binding Source="StaticResource myData" />12: Canva

11、s.DataContext>13: <Label Canvas.Left="10" Canvas.Top="10" Height="28" Name="label1" Width="120">StudentName: Label>14: <Label Canvas.Left="10" Canvas.Top="36" Height="28" Name="label2" Width=&quo

12、t;120">Score: Label>15: <TextBox Canvas.Left="136" Canvas.Top="12" Height="23" Name="textBox1" Width="120">16: <TextBox.Text>17: <Binding Path="StudentName" 杭州市综合办公大楼项目工程 施工招标招 标 文 件(招标编号:ZJZXZX0125 ZJYS05)招 标 人:杭州

13、市政府招标代理人:浙江豁达投资咨询中心有限公司二零一零 年 七月目 录第一章 投标须知及投标须知前附表 1一. 投标须知前附表 3二. 投 标 须 知 5(一 总 则 51. 工程说明 52. 招标范围及工期 53. 资金来源 54. 合格的投标人 55. 踏勘现场 66. 投标费用 6(二 招标文件 67. 招标文件的组成 68. 招标文件的澄清 79. 招标文件的修改 7(三 投标文件的编制 810. 投标文件的语言及度量衡单位 811. 投标文件的组成 812. 投标文件格式 1013. 投标报价 1014. 投标货币 1115. 投标有效期 1116. 投标担保 1117. 投标人的替

14、代方案 1218. 投标文件的份数和签署 12(四 投标文件的提交 1319. 投标文件的装订、密封和标记 1320. 投标文件的提交 1421. 投标文件提交的截止时间 1422. 迟交的投标文件 1423. 投标文件的补充、修改与撤回 14(五 开 标 1524. 开标 15(六 评标与决标 1625. 评标委员会与评标 1626. 评标和决标过程的保密 1627. 评标 1628. 决标 16(七 合同的授予 1629. 中标通知书 1630. 合同协议书的签订 1731. 履约担保 1732. 招标文件的质疑 1733. 招标服务费 17第二章 合同条款 19第三章 合同文件格式 37

15、一. 合同协议书 39第四章 工程建设标准 43第五章 图 纸 47第六章 工程量清单 51一. 总 说 明 54二. 分部分项工程量清单 58三. 措施项目清单 67四. 其他项目清单 68第七章 投标文件 69一. 投标文件商务部分(格式) 71(一 投标函(格式) 74(二 工程量清单报价 761. 封面(格式) 772. 编制说明(格式) 783. 投标总价(格式) 794. 工程项目总价表(格式) 805. 单项工程费汇总表(格式) 816. 单位工程费汇总表(格式) 827. 分部分项工程量清单计价表(格式) 838. 措施项目清单计价表(格式) 849. 其他项目清单计价表(格式

16、) 8510. 分部分项工程量清单综合单价分析表(格式) 8611. 措施项目费分析表(格式) 8712. 主要材料价格表(格式) 88二. 投标文件技术部分(格式) 89(一 法定代表人身份证明书及授权委托书(格式) 921. 法定代表人身份证明书(格式) 922. 授权委托书(格式) 93(二 施工组织设计 94(三 项目管理机构配备情况(格式) 1001 项目管理机构配备情况表(格式) 1002 项目管理机构配备情况辅助说明资料(格式) 101三. 投标文件资格后审申请书部分(格式) 102(一 资格后审须知 104(二 强制性资格条件 105(三 投标人资格后审申请书 1071. 申请

17、表(格式) 1092. 强制性资格条件表(格式) 1103. 履约行为表(格式) 1124. 基本情况表(格式) 1135. 近三年竣工工程一览表(格式) 1146. 在建工程一览表(格式) 1157. 拟投入的主要施工人员一览表(格式) 1168. 拟投入的主要施工人员的履历表(格式) 1179. 近三年工程营业额数据表(格式) 11810. 财务状况表(格式) 119第八章 评标文件 121一. 评标原则 123二. 评标组织 123三. 评标 123第一章 投标须知及投标须知前附表1. 投标须知前附表采用资格后审 < DataErrorValidationRule 开 <Ex

18、ceptionValidationRule />8:开始时间:2010年10: TextBox.Text>11: TextBox>例如,定义一个类,用来验证输入的Email地址是否合法(验证的Email允许为字符串的空值String.Empty在学生类中添加string 2: 3: set; get;4: 定义一个类,实现 Email 格式验证: 1: 投 3: using System.Windows.Controls;4:  5: namespace WPFDataBindingDemo6: 7: public class EmailValidationRule

19、 : ValidationRule8: 9: public override ValidationResult Validate(, CultureInfo cultureInfo 10: 11: bool isValid = false;12: string message = null;13:  14: / 检查输入值不为空,且是字符串15: if (value != null && valueis合格的投标人string4.1 投标人资质等级要求详见本投标须知前附表第17: string email = value4.2 投标人合格的条件详见浙江省重点建设工程招

20、标公告19: / 检查输入的字符串是否为String.Empty20: if (email != string.Empty21:22: string emailFormartRegex =23: "(w-.+(0-91,3.0-91,3.0-91,3.|" +4.6 中标人对本次招标范围内的工程内容必须自行完成,不得分包或转包。;25:5.26: / 检查输入的字符串是否符合Email格式27: isValid = Regex.IsMatch(email, emailFormartRegex;28:  29: if (! isValid30:经招标人允许,投标人可

21、为踏勘目的进入招标人的项目现场,但投标人不得因此使招标人承担有关的责任和蒙受损失。31: message = "Input string not match Email Format"32: 33: 34: else35: 36: / 输入的字符串为字符串空值时,认为验证通过37: isValid = true;38: 39: 40: else41: 42: message = "Input value is NULL or is not string."43: 44:  45: / 返回验证结果(ValidationResult对象)46:

22、return new ValidationResult(isValid,message;47: 48: 49: 在界面上:1: <TextBox Canvas.Left="104" Canvas.Top="70" Height="23" Name="textBox3" Width="152">2: <Binding Mode="TwoWay" Path="Email" UpdateSourceTrigger="PropertyC

23、hanged">3: <Binding.ValidationRules>4: <local:EmailValidationRule />5: Binding.ValidationRules>9: Binding> 自定义验证规则:定义一个类,继承ValidationRule抽象类,实现其Validate方法,验证某一输入。 履约保证金Email的格式要求)详见本招标文件合同条款的规定2: using System.Text.RegularExpressions;2. 招标范围及工期tdp 项号条款号内 容说 明 与 要 求11.1工程名称杭州

24、市综合办公大楼建设项目21.1建设地点杭州市西湖区31.1建设规模建筑面积13949.6平方米。41.1承包方式施工图范围内总承包(不含桩基、幕墙、及网架工程;幕墙、及网架工程纳入总包管理)51.1质量标准符合(工程施工质量验收规范)标准62.1招标范围杭州市综合办公大楼建设项目(不含桩基、幕墙、钢结构及网架工程,幕墙、钢结构及网架工程纳入总包管理)施工图范围内的全部工程内容72.2工期要求施工总工期两年83.1资金来源自 筹,政府划拨94.1投标人资质等级要求具备房屋建筑工程施工总承包一级及以上资质104.3p资格审查方法115.1踏勘现场集合时间:2010 年 4 月 5 日上午 9 时

25、30 分集合地点:杭州市综合办公大楼建设地点128.118: Mode="TwoWay" 投标人提出疑问的 UpdateSourceTrigger="PropertyChanged"20: ValidatesOnDataErrors="True" />招标人澄清TextBox.Text>22: TextBox>23: <TextBox Canvas.Left="136" Canvas.Top="41" Height="23" Name="te

26、xtBox2" Width="120">24: 时间:2010年 4 月<Binding Path="Score" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">5:20Binding.ValidationRules>24.16: Binding>7: TextBox>三、为数据验证提供视觉效果在数据验证错误后,可以通过以下两种方式提供相应的视觉效果: 定义Style及相应的触发器 如果要使输入的控件的外观发生变化,可以使用Style。例如上例中出错,使输入的文本框的背景颜色和字体颜色发生变化,并提供ToolTip显示错误信息,可以定义如下的Style:1: <Style TargetType="TextBox">2: <Setter Property="Background" Value="White" />3: <Setter Property="Foreground" Value="Black"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论