WPF绑定(Binding)

数据绑定是将数据与UI控件关联,根据数据变化更新界面的过程。包括五个步骤:绑定目标、绑定属性(依赖项属性)、绑定模式(如TwoWay、OneWay)、绑定数据源(如单个变量或数据集)以及关联资源(如DataContext)。TemplateBinding用于控件模板内的属性绑定,而Source、ElementName、DataContext和RelativeSource则用于指定绑定源。文章还介绍了如何绑定非元素对象和使用后台代码绑定数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义:

是将我们获取到的数据和UI上的控件绑定起来利用数据的变化来更新界面所看到的内容

把绑定分为五步
1.绑定目标 2.绑定属性 3.绑定模式 4.绑定数据源 5.关联资源

1.绑定目标

绑定目标很好理解,其实就是你要操作绑定的控件。例如:Button,TextBox

2.绑定属性(依赖项属性)

3.绑定模式

TwoWay 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。

OneWay 仅当源属性发生更改时更新目标属性。

OneTime 仅当应用程序启动时或 DataContext 进行更改时更新目标属性。

OneWayToSource 在目标属性更改时更新源属性。

Default:模式根据实际情况来定,如果是可编辑的就是TwoWay,只读的就是OneWay.

4.绑定数据源
一般来说可以是单个变量(int , double,string)、也可以是一个数据集(List)。根据需求和场景去定义。

  • 指定方式

Source、ElementName、DataContext、RelativeSource

5.关联资源 DataContext
在每一个窗体中,都有一个DataContext ,它是一个object类型主要用来存储绑定资源。

控件绑定

件绑定,即在同一个界面中不同控件之间的数据同步处理,最常见的就是滑动条与一个文本框之间的绑定。在控件绑定中,需要指定绑定类的elementname属性值,即当前属性绑定到哪一个控件的属性上。示例如下:

 在控件绑定中有一个比较特殊的存在——模板绑定-templatebinding,它与binding并不在一个继承结构上。templatebinding是用在控件模板定义中的,用于绑定模板对应控件中的属性,示例如下:

<textbox x:name="templatebinding">

 <textbox.template>

  <controltemplate targettype="textbox">

   <textblock text="{templatebinding text}" />

  </controltemplate>

 </textbox.template>

</textbox>

绑定到非元素上

上面的代码中,使用的绑定方式是根据元素的方式: ElementName=xxx, 如需绑定到一个非元素的对象, 则有一下几属性:

  • Source : 指向一个数据源, 示例, TextBox使用绑定的方式用Source指向一个静态资源ABC: 
  • RelativeSource : 使用一个名为RelativeSource的对象来根据不同的模式查找源对象
  • 示例, 使用RelativeSource的FindAncestor模式, 查找父元素为StackPanel的Width值

  • DataContext: 从当前的元素树向上查找到第一个非空的DataContext属性为源对象。

示例, 该示例用后台代码创建一个只包含Name的类, Test, 通过绑定窗口的DataContext上下文:

后台代码绑定简单文本与列表

创建一个PageModel类, 定一个ClassName为班级名称, 和一个Students学生列表, 后台代码:


窗口代码
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值