博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF学习笔记 - 在XAML里绑定
阅读量:6068 次
发布时间:2019-06-20

本文共 1438 字,大约阅读时间需要 4 分钟。

Binding除了默认构造函数外,还有一个可以传入Path的构造函数,下面两种方式实现的功能是一样的。

<TextBlock x:Name="currentFolder" DockPanel.Dock="Top"

                    Text="{Binding ElementName=treeView, Path=SelectedItem.Header}"

                    Backgroud="AliceBlue" FontSize="16" />

<TextBlock x:Name="currentFolder" DockPanel.Dock="Top"

                    Text="{Binding SelectedItem.Header, ElementName=treeView}"

                    Backgroud="AliceBlue" FontSize="16" />

 

这里使用ElementName来设置源对象,而没有使用Source属性来设置,这两种设置都是有效地,但在XAML里ElementName使用起来更方便,只需要给源元素一个名称就可以了,但如果要设置Source属性,目标对象必须被定义为某个ResourceDictionary中的资源,比如:

<TextBlock x:Name="currentFolder" DockPanel.Dock="Top"

                    Text="{Binding Source={StaticResource treeView}, Path=SelectedItem.Header}"

                    Backgroud="AliceBlue" FontSize="16" />

 

另一种指定数据源的方式是使用Binding的RelativeSource 属性,它通过与目标元素的关系获得相应的元素。RelativeSource的类型是RelativeSource,是一个标记扩展,有一下几种使用的方式:

1. 使源元素为目标元素本身

{Binding RelativeSource={RelativeSource self}}

2. 使源元素为目标元素的TemplatedParent属性

{Binding RelativeSource={RelativeSource TemplatedParent}}

3. 使源元素为最近的指定类型的父元素

{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type desiredType}}}

4. 使源元素为n层最近的指定类型的父元素

{Binding RelativeSource={RelativeSource FindAncestor, AncestorLevel=n, AncestorType={x:Type desiredType}}}

5. 使源元素为之前的数据绑定集合中的数据项

{Binding RelativeSource={RelativeSource PreviousData}}

 

在RelativeSource 中使用Self是很方便的,因为这种模式可以把该元素的一个属性绑定到另一个属性上,但却不需要为元素指定名称,比如下面这个例子,Slider的ToolTip绑定了它自己的值:

<Slider ToolTip="{Binding RelativeSource={RelativeSource Self}, Path=Value}">

转载地址:http://dtygx.baihongyu.com/

你可能感兴趣的文章
自己生成非官方iPhone toolchain的头文件
查看>>
安装性能测试工具:sysbench和使用apache的ab
查看>>
[转载]Struts2的配置
查看>>
C# 连接SQL数据库
查看>>
Oracle数据库的权限、用户、角色管理
查看>>
对文章内容进行分页
查看>>
数组方式使用jQuery对象
查看>>
layui-更多demo
查看>>
电脑 F键(功能键)的具体作用
查看>>
STM32F207Cube库函数USART中断接收
查看>>
比较两个圆的面积大小
查看>>
ble设备的第一次成功例子
查看>>
JVM自动内存管理机制
查看>>
loj2542「PKUWC2018」随机游走
查看>>
bzoj2564集合的面积
查看>>
Vue搭建后台项目
查看>>
app启动过程
查看>>
docker的四种网络模式
查看>>
MVC,MVP 和 MVVM 的图示
查看>>
localStorage
查看>>