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呢?需要想想看。
查看全文
相关阅读:
计算机网络 实验之 面向连接和无连接的套接字到底有什么区别?
计算机网络 实验之 Internet 套接字
计算机网络 实验之 socket是什么?套接字是什么?
PepperLa's Boast(单调队列优化二维dp)
理想的正方形(单调队列在二维的应用)
移相器以及相控阵雷达移相器位数的选择
盲速和频闪——雷达
多普勒效应----雷达
线性调频(LFM)脉冲压缩-----------雷达
雷达----脉冲压缩
原文地址:https://www.cnblogs.com/tansm/p/902996.html
最新文章
非常完善的Log4net配置详细说明
一次完整的http请求过程是怎样的?
TCP心跳包keep-alive --KeepAliveTime和KeepAliveInterval参数详解
[C#.NET 拾遗补漏]:最基础的线程知识 -- Thread、ThreadPool 和 Task
如何在webapi帮助页面添加测试工具
如何给ASP.NET页面添加HelpPage --webapi在线文档自动生成
C#中swagger的使用及避坑--webapi在线接口文档自动生成器
C#继承
C#访问修饰符(一) --默认可访问性
寻找性能更优秀的动态 Getter 和 Setter 方案
热门文章
微服务的简介和技术栈
大屏数据
令人惊叹的百度Echarts,大数据分析的必备工具,文末有源码提供
FreeSql基础入门
不定积分可以转换为变上限积分加上常数
pdf图标显示错误的解决办法
配置公钥
idea中忽略文件
算法题---二叉树的前中后遍历
Ubuntu上开发Opencv4
Copyright © 2011-2022 走看看