zoukankan
html css js c++ java
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呢?需要想想看。
查看全文
相关阅读:
HDU--2191 汶川地震购米(多重背包)
PKU--1267 Cash Machine(多重背包)
背包问题之多重背包
NYOJ--311(完全背包)
HDU--1114 Piggy-Bank(完全背包)
MySQL的if,case语句
测试一下MarkDown
ThreadPoolExecutor介绍
CountDownLatch的使用
java中的信号量Semaphore
原文地址:https://www.cnblogs.com/tansm/p/902996.html
最新文章
Kinect 开发 —— 图片浏览
Kinect 开发 —— 控制PPT播放
Kinect 开发 —— 全息图
Kinect 开发 —— 面部识别
Kinect 开发 —— 保持视频影像
Kinect 开发 —— 进阶指引 (下)
Kinect 开发 —— 近距离探测
Kinect 开发 —— 进阶指引(上)
Kinect 开发 —— 语音识别(下)
Kinect 开发 —— 录音
热门文章
Kinect 开发 —— 语音识别(上)
Kinect 开发 —— 常见手势识别(下)
Kinect 开发 —— 常见手势识别(上)
Kinect 开发 —— WaveHand
Kinect 开发 —— 手势识别(下)
RQNOJ--160 竞赛真理(01背包)
RQNOJ--2 开心的金明(01背包)
HDU--2844 Coins(多重背包)
HDU--1171 Big Event in HDU(多重背包)
HDU--1059 Dividing(多重背包)
Copyright © 2011-2022 走看看