ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

WPF 绑定简介

2019-12-10 10:00:12  阅读:153  来源: 互联网

标签:对象 简介 绑定 更新 目标 WPF 数据 属性


1.绑定简介

数据绑定就是一种关系。即从源对象提取信息,将这些信息设置到目标对象的属性。

绑定分为四部分:源对象,源属性,绑定目标,目标属性。当源属性和目标属性不一致时需要用到转换器进行数据转换。目标属性始终为依赖项属性,源对象可以为任何内容。

2.绑定方式

WPF绑定方式非为两种:标记语言绑定和代码创建绑定。

标记语言绑定:绑定清晰,创建绑定时完成简单<TextBlock x:Name="textBolck" Text="{Binding Source=ContentName,Path=Name1}"/>

Source:源对象

Path:源属性

TextBlock:绑定目标

Text:目标属性

代码绑定:可以动态绑定和移除绑定

 

Binding binding=new Binding();

binding.source=ContentName;//设置绑定源

binding.Path=new PropertyPath(“Name1”);//设置源属性

binging.Model=BindingModel.TwoWay;////设置绑定模式

textBolck.setBinding(TextBlock.Text,binding);//对绑定目标的目标属性进行绑定

3.绑定错误提示

WPF不会引发异常来通知数据绑定相关的问题,就算指定的元素或属性不存在,也不会由异常提示,只是不能再目标属性中显示数据。只有在调试应用程序时,异常信息显示在VS的Output窗口

 

4.绑定模式

 

 

设置绑定模式用于控制源目标和目标属性的数据刷新。模式分为5种

  1. OneWay:当源属性变化时,更新目标属性
  2. TwoWay:当源属性变化时更新目标属性,并且当目标属性发生变化时更新源属性
  3. OneTime:最初源属性和目标属性绑定,其后所有改变会被忽略
  4. OneWayToSource:与oneWay类似,当方向相反
  5. Default:此类绑定依赖于目标属性,既可以是双向的,也可以是单向的,除非指定了模式,否则绑定都是该模式

5.绑定更新

当数据发生变化后,可根据绑定跟新的条件来通知数据的跟新。跟新条件分为四种

  1. PropertyChanged 当目标属性发生变化时立即更新源(实时更新)
  2. LostFocus:当目标属性方式变化并且丢失焦点时跟新源(TextBox的数据跟新)
  3. Explicit:除非调用BindingExpression.UpdateSource()方法,否则无法更新源
  4. Default:根据目标的数据源的元数据确定更新行为,大多数默认的时PropertyChanged,TextBox.Text属性的默认时LocatFoucs

6.绑定延迟

在需要防止数据绑定触发操作和修改源对象,源对象在数据绑定属性发生变化时执行处理器的密集操作,在此情况下,可能要添加短暂的延迟时间,避免频繁地触发操作(比如点击按钮时)

<Button x:Name="textBolck" Text="{Binding Source=ContentName,Path=Name1, Delay=100}",/>

7.源属性绑定

1. 绑定到元素对象:ElementName,将源对象设置为ElementName指定的Name,源属性为Path指定的属性
<TextBlock Text="{Binding ElementName=button,Path=Text}"/>

2. 绑定到非元素对象

a.Source:该属性直接指向源对象的引用,及提供源对象的对象
    <Window.Resources>

        <FontFamily x:Key="sourBind">SourceBind</FontFamily>

<Window.Resources>

      <TextBlock Text="{Binding Source={StaticResource sourBind},Path=Source}"/>

b.RelativeSource:这是个引用,使用RelativeSource对象指定源对象
    <TextBlock Text="{Binding Name1,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Window}}}"/>

c.DataContext:WPF从当前元素开始查找元素树中向上查找,检查每个源属的DataContext,并使用第一个非空的DataContext属性

8.移除绑定

1.通过代码可以适应BindingOperation类的两个静态方法移除绑定

  clearBinding()方法使用依赖项属性(该属性具有希望删除的绑定)的引用作为参数
  ClearAllBinding()移除所有的绑定

2.手动将绑定设为其他数据绑定或者设为null。

 

 

 

标签:对象,简介,绑定,更新,目标,WPF,数据,属性
来源: https://www.cnblogs.com/qlbky/p/12014946.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有