WPF DataBinding

本文详细探讨了WPF中的数据绑定,包括控件作为Binding源、Binding的方向与数据更新、Binding路径、源指定方法,以及各种数据源如集合、ADO.NET、XML和LINQ结果的应用。特别强调了DataContext在数据绑定中的重要作用,它允许数据沿着UI元素树传递,并作为多个控件共享的数据源。
摘要由CSDN通过智能技术生成

1.

Binding:“捆绑”,“关联”,“键联”等意思,也就是说,binding更注重表达他是像一种桥梁一样的关联关系。

2.

如果把Binding比作数据的桥梁,那么他的两端分别是Binding的源(Source,数据来的方向)和目标(Target,数据去的方向)。一般情况下,binding源是逻辑层的对象,binding目标是UI层的控件对象,就这样,数据被送到UI层展现。

3.

UI 上的元素关心的是该对象哪个属性值的变化?那这个属性就称为Binding的路径(Path). 但是Binding是一种自动机制,当值变化后属性要有能力通知Binding,让Binding吧变化传给UI元素。怎么做呢?方法是在属性的set语句中激发一个PropertyChanged事件(让座位数据源的类实现System.ComponentModel名称空间中的INotifyPropertyChanged接口。当为Binding设置了数据源后,Binding就会自动侦听来自这个接口的PropertyChanged事件)。如:
该图展示了3的实现接口方式

4.

Binding对源的要求:只要是一个对象,并且通过属性Property公开自己的数据。例如:1.控件把自己或自己的容器或子级元素当源、用一个控件作为另一个控件的数据源、把集合作为ItemsControl的数据源、使用Xml作为TreeView或Menu的数据源、把多个控件关联到一个“数据制高点”上,甚至干脆不给Binding指定数据源,让它自己去找。

深入浅出WPF中的笔记:

6.3.1把控件作为Binding源与Binding标记扩展

推动Slider,TextBox中的值会跟着变化
除了在C#代码中建立Binding外,在XAML代码里也可以设置Binding.
注意:在C#代码里可以访问Xaml代码中声明的变量,但在XAML代码中不能访问C#代码中声明的变量。因此,想要在XAML中建立UI元素与逻辑层对象的Binding,需要把逻辑层对象声明为XAML代码中的资源(Resource)–在后面“资源”一章学习。

Text="{Binding Path=Value,ElementName=slider1}" 使用了Binding标记扩展语法
与之等价的C#代码为:
textbox1.SetBinding(TextBox.TextProperty, new Binding("value") {ElementName="slider1"} );

  • 因为Binding类的构造器本身可以接受Path作为参数,所以Binding Path=Value也可以写为Binding Value

  • 因为在C#代码中我们可以直接访问控件对象,一般不会使用到Binding的ElementName属性,而是直接把对象赋值给Binding的Source属性。

  • Text=”{Binding Path=Value,ElementName=slider1}”` 可以理解为:”给Text属性设置Binding为。。。“,也可以把{Binding}视为一个值,一种间接的,不固定的赋值方式。

6.3.2控制Binding的方向及数据更新

控制Binding数据流向的属性为Mode,类型是BindingMode枚举:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值