编写人生
写写代码,写写人生
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 179 文章- 0 评论- 521
2007年9月30日
WPF学习笔记(数据绑定篇3)
接上回的《
WPF学习笔记(数据绑定篇2)
》,继续
BindValidation
此示例演示了:
如何使用错误模板;
使用样式显示错误信息;
如何在校验发生异常时执行回调;
首先,你可以看见XAML中使用自定义的错误模板,指定错误模板的方式是:
<
TextBox
Name
="textBox1"
Validation.ErrorTemplate
="{StaticResource validationTemplate}"
Style
="{StaticResource textBoxInError}"
>
<
TextBox
.Text
>
此错误模板我简单改造了一下,变得好看点:
<
ControlTemplate
x:Key
="validationTemplate"
>
<
DockPanel
>
<
Image
Source
="Error.jpg"
Width
="16"
Height
="16"
/>
<
AdornedElementPlaceholder
/>
</
DockPanel
>
</
ControlTemplate
>
注意这个模板是ControlTemplate(为什么是控件模板我也不知道,照葫芦画瓢),然后定义了一个布局,左边一个图像,右边一个AdornedElementPlaceholder占位符。
(我在实验时,图像如果没有加入Width和Height,在显示时图片将变得很大)。
当然,你也可以使用样式绑定到异常上来显示错误,例如:
<
Style
x:Key
="textBoxInError"
TargetType
="{x:Type TextBox}"
>
<
Style
.Triggers
>
<
Trigger
Property
="Validation.HasError"
Value
="true"
>
<
Setter
Property
="ToolTip"
Value
="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors)[0].ErrorContent}"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>
当然,例子中还显示了,如果校验时发生异常(注意:是异常不是不正确的数据),将发生回调:
BindingExpression myBindingExpression
=
textBox3.GetBindingExpression(TextBox.TextProperty);
Binding myBinding
=
myBindingExpression.ParentBinding;
myBinding.UpdateSourceExceptionFilter
=
new
UpdateSourceExceptionFilterCallback(ReturnExceptionHandler);
myBindingExpression.UpdateSource();
当然,为什么是ParentBinding呢?需要想想看。
posted @
2007-09-30 15:54
编写人生 阅读(79) |
评论 (0)
|
编辑
公告
Web
tansm.cnblogs.com
<
2007年9月
>
日
一
二
三
四
五
六
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
我的标签
Torridity(2)
Entity Framework(2)
性能(2)
ORM(2)
LinQ(2)
DataSet(1)
Insert(1)
发明畅想(1)
随笔档案
2008年9月 (1)
2008年6月 (4)
2008年5月 (3)
2008年4月 (6)
2008年3月 (5)
2008年2月 (1)
2008年1月 (4)
2007年12月 (2)
2007年11月 (2)
2007年10月 (2)
2007年9月 (5)
2007年8月 (2)
2007年7月 (4)
2007年6月 (1)
2007年5月 (1)
2007年4月 (3)
2007年3月 (5)
2007年2月 (1)
2006年12月 (2)
2006年11月 (7)
2006年10月 (4)
2006年9月 (1)
2006年8月 (8)
2006年7月 (6)
2006年6月 (7)
2006年5月 (2)
2006年4月 (1)
2006年3月 (8)
2006年2月 (6)
2006年1月 (2)
2005年12月 (5)
2005年11月 (3)
2005年10月 (2)
2005年9月 (4)
2005年8月 (12)
2005年7月 (12)
2005年6月 (2)
2005年5月 (4)
2005年4月 (1)
2005年1月 (13)
2004年12月 (6)
2004年11月 (9)
相册
taobao
收藏夹
WinFX(8)
(rss)
编程朋友
AdamBear 越学越没底
(rss)
Arbean
Masterpiece 纯爷们!在乎?
(rss)
Validation Application Block: Revealed
我的高中同学录
怎么捅破那层纸?(续)
很好的性能调优的文章,包括内存和SQL的
积分与排名
积分 - 129721
排名 - 305
最新评论
1. re: 压缩空气动力自行车
各位楼主你们好,很高兴有这么多志同道合者,近几年我也一直在研究此类问题,气瓶使用工业氧气瓶,价格是600元左右.压力可以达到16MP,气发动机采用自制,用一个厚一毫米钢板,制造一个直径300毫... (福音使者)
2. re: 向灾区捐款,自我纪念一下
说明其他部门比研发部有钱呀 (iCaca)
3. re: 向灾区捐款,自我纪念一下
估计是的,捐款不能攀比的吗 (tansm)
4. re: 向灾区捐款,自我纪念一下
你楼下那位捐了1k? (iCaca)
5. re: 结束租房生活,开始自己的新家新生活
恭喜!恭喜! (sunhl)
阅读排行榜
1. 压缩空气动力自行车(12176)
2. 我们为什么使用ORM?(10233)
3. ORM的世界(修订版)(3998)
4. System.ComponentModel.Component入门(3763)
5. 在 .NET 2.0 中享受 .NET 3.0的特性(3386)
评论排行榜
1. 压缩空气动力自行车(175)
2. 从LinQ看我们的ORM设计(27)
3. 我们为什么使用ORM?(16)
4. 在 .NET 2.0 中享受 .NET 3.0的特性(15)
5. 程序的可扩展性 Vs. 开放源代码(14)