接着上一回的话题,继续来研究数据批示特性,先拿简单的RageAttribute来弄弄,接着上次的示例,添加一个Age属性,并加上RangeAttribute。
[Range(20,60,ErrorMessage="年龄范围在20与60之间。")] [display(name="年龄",Description="歌手年龄。")] public int Age { get; set; }
接着把XAML也补完整。
<sdk:Label x:name="lbAge" Target="{Binding Elementname=txtAge}" GrID.Column="0" GrID.Row="2" FontSize="14" margin="1,1,20,1"/> <StackPanel GrID.Column="1" GrID.Row="2" OrIEntation="Horizontal"> <TextBox x:name="txtAge" margin="1,1" WIDth="165" Text="{Binding Age}"/> <sdk:DescriptionVIEwer Target="{Binding Elementname=txtAge}"/> </StackPanel>
int m_Age = 20; [Range(20,ErrorMessage = "年龄范围在20与60之间。")] [display(name = "年龄",Description = "歌手年龄。")] public int Age { get { return this.m_Age; } set { ValIDator.ValIDateProperty(value,new ValIDationContext(this,null,null) { Membername = "Age" }); this.m_Age = value; } }
<TextBox x:name="txtAge" margin="1,1" WIDth="165" Text="{Binding Age,Mode=TwoWay,ValIDatesOnExceptions=true,NotifyOnValIDationError=true}"/>
再运行,这回验证了,但是,抛出了异常。那有没有办法不抛出异常而显示友好的错误提示呢?答案当然有,使用ValIDationSummary 。
<sdk:ValIDationSummary GrID.Row="3" GrID.ColumnSpan="2"/>
再次按下F5,验证失败后仍然抛出异常,这时候,你可能有些失望。
山重水复疑无路,柳暗花明会成功,这时候,你在项目上右击,选择“在浏览器中查看”,啊,眼前一亮,出来了。
现在,总结一下方法:
1、在定义公共属性时加上对应的特性,如RangeAttribute;
2、在属性的set访问器上调用ValIDator的ValIDateProperty方法;
3、在XAML或前台绑定时,将Binding 的Mode设置为TwoWay,ValIDatesOnExceptions和NotifyOnValIDationError设置为True;
4、添加ValIDationSummary控件以显示错误列表,当然,不加也可以,看看下面的截图。
5、在非deBUG模式下运行程序。
总结以上是内存溢出为你收集整理的Silverlight之我见——数据批示(2)全部内容,希望文章能够帮你解决Silverlight之我见——数据批示(2)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)