WPF and Silverlight学习笔记(二十二):使用代码实现绑定、绑定数据的验证

一、通过代码实现数据绑定

通过代码实现数据绑定,使用的是 System.Windows.Data命名空间的Binding类,主要使用Binding类的如下的属性 :

Source属性:绑定到的数据源

Mode属性:绑定的模式 (OneTime、OneWay、TwoWay、OneWayToSource或Default)

Path属性: 绑定到的数据源的属性

Converter属性:绑定时所使用的类型转换器

在绑定目标控件上使用SetBinding方法添加数据绑定。例如将MyData的 Name属性绑定到txtName控件的Text属性上,使用MyColorConverter转换器将 MyBindingColor的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:
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 (Rectangle.FillProperty, binding2);

二、实现绑定数据的验 证:

对于绑定数据的验证,系统采用如下的机制:


使用 WPF 数据绑定模型可以将 ValidationRules 与 Binding 对象相关联。 当绑定目标的属性向绑定源属性传递属性值时(仅限TwoWay模式或 OneWayToSource模式),执行ValidationRule中的Validate方法,实现对界面输 入数据的验证。

时间: 2025-01-30 09:37:44

WPF and Silverlight学习笔记(二十二):使用代码实现绑定、绑定数据的验证的相关文章

WPF and Silverlight学习笔记(十二)

WPF and Silverlight学习笔记(十二):WPF Panel内容模型.Decorator内容模型及其他 一.Panel内容模型 Panel内容模型指从 System.Windows.Controls.Panel继承的控件,这些控件都是容器,可以在内部 承载其他的控件和子容器.Panel内容模型包含的容器有: Canvas DockPanel Grid TabPanel ToolBarO verflowPanel UniformGrid StackPanel ToolBarPanel

WPF and Silverlight学习笔记(十六):WPF资源(Resource)(1)

一.什么是资源 通常使用 WPF 资源作为重用通常定义的对象和值的 简单方法.例如定义一种可以复用的单色的Brush对象,按钮的背景及矩形的填 充颜色均使用此Brush: 1: <Window x:Class="WPFResource.WinBasicResource" 2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation& quot; 3: xmlns:x="http:

WPF and Silverlight学习笔记(十八):WPF样式(Style)与模板(Template)

一.WPF样式 类似于Web应用程序中的CSS,在WPF中可以为控件定义统 一的样式(Style).样式属于资源的一种,例如为Button定义统一的背景颜色 和字体: 1: <Window.Resources> 2: <Style 3: TargetType="Button"> 4: <Setter Property="Background" Value="Yellow" /> 5: <Setter Pr

WPF and Silverlight学习笔记(十五):WPF命令(Commands)

WPF中的命令路由与事件路由是两个很让初学者头痛的概念,对于命令路由可 以理解为,系统(WPF)定义了一系列的操作,在应用程序中可以直接使用.例 如,定义一系列菜单,执行对窗体中文本框的复制.剪切.粘贴操作,简单地可 以这样做: 1: <Grid> 2: <Grid.RowDefinitions> 3: <RowDefinition Height="23" /> 4: <RowDefinition /> 5: </Grid.RowD

WPF and Silverlight学习笔记(十四):键盘输入、鼠标输入、焦点处理

一.键盘类和键盘事件 WPF提供了基础的键盘类 (System.Input.Keyboard类),该类提供与键盘相关的事件.方法和属性,这 些事件.方法和属性提供有关键盘状态的信息.Keyboard的事件也通过 UIElement等XAML基元素类的事件向外提供. 对于键盘操作,其常用的事 件有两组: KeyDown事件和PreviewKeyDown事件:处理键盘键按下 KeyUp事件和PreviewKeyUp事件:处理键盘键抬起 其中KeyDown和 KeyUp事件属于冒泡路由事件,而Prev

WPF and Silverlight学习笔记(十):WPF控件模型

WPF对控件其类型的继承方式如下 (其中绿色表示的类是抽象类,蓝色表示的类是非抽象类) 控 件内容模型 System.Windows.Controls.Control类:表示 用户界面 (UI) 元素的基类,这些元素使用ControlTemplate来定义其外观 ContentControl:ContentControl 是一种包含一段内容的 Control 说明 ContentControl 是一种包含一段内容的 Control. 内容属性 Content 内容模型信息 控件内容模型概述 属于

WPF and Silverlight学习笔记(十九):WPF更换主题

如果要做到一个应用程序其基本的内容不变,但改变整个应用程序的外观可 以这样做: 对于每一套外观定义一个ResourceDictionary 在应用 程序中,动态加载此应用程序(或窗体)的Resource 例如,如下的应用 程序,在选择不同的用户时,显示不同的Canvas背景及图片: 主题样式A : 主题样式B: 主题样式C:

WPF and Silverlight学习笔记(二十五)

WPF and Silverlight学习笔记(二十五):使用CollectionView实现对绑定数据的排序.筛选.分组 在第二十三节,我们使用CollectionView实现了对于绑定数据的导航,除导 航功能外,还可以通过CollectionView对数据进行类似于DataView的排序.筛选 等功能. 一.数据的排序: 使用第二十四节的数据源,查询所有 的产品信息: 1: <Window x:Class="WPF_24.CollectionViewSortData" 2:

Mysql学习笔记(十二)触发器

原文:Mysql学习笔记(十二)触发器 学习内容: 1.触发器: 什么是触发器?我们什么时候能够使用触发器?   触发器就是用来监听某个表的变化,当这个表发生变化的时候来触发某种操作..比若说两个表是相互关联的,当我们在对其中一个表格进行操作的同时,另一个表内的数据也需要进行某种操作,那么我们就需要建立一个触发器来监听任何一个表发生的变化,当其中一个表的数据发生变化的同时,触发器里的代码块将会对另一个表格进行对数据的某种操作.. 总而言之,触发器一般是使用在表与表之间的,单个的表建立触发器是没有

VSTO 学习笔记(十二)自定义公式与Ribbon

原文:VSTO 学习笔记(十二)自定义公式与Ribbon 这几天工作中在开发一个Excel插件,包含自定义公式,根据条件从数据库中查询结果.这次我们来做一个简单的测试,达到类似的目的. 即在Excel 2010中添加一个Ribbon,包含4个自定义公式:仅仅是示例公式加减乘除. 最终效果: 测试代码下载   1.解决方案包含两个项目: ExcelAddIn:Excel 插件 ExcelUDF:Excel 自定义公式 2.首先创建一个Excel 2010 Add-in项目: 3.添加一个可视化Ri