WPF Binding中的RelativeSource属性

news/2024/10/9 18:14:46

一、简介

一个在Binding中比较重要的知识点——RelativeSource. 使用RelativeSource对象指向源对象。用这个可以在当前元素的基础上查找其他对象用于绑定到源对象。
在实际使用Binding的过程中大部分时间Binding都放在了数据模板和控件模板中,(数据模板是控件模板用于定义控件的UI)。
在模板中编写Binding时有时候无法直接拿到我们需要绑定的数据对象,我们不能确定我们需要的Source对象叫什么,但是我们直到了我们需要使用的对象在UI布局上的相对关系。比如控件自己关联了某个数据,关键自己某个层级的容器数据。这个时候我们的RelativeSource就派上了用场。我们使用RelativeSource首先要3个关键参数。
AncestorType=我们需要查找的类型。比如Grid
AncestorLevel= 我们需要向上查找几级。
Path=我们找到的元素需要绑定的属性。

二、代码

<!--嵌套Grid--><Grid x:Name="G0" Margin="12" Background="Red"><TextBlock Text="In this Grid0 container"/><Grid x:Name="G1" Margin="12" Background="Blue"><TextBlock Text="In this Grid1 container"/><Grid x:Name="G2" Margin="12" Background="Yellow"><TextBlock Text="In this Grid2 container"/><Grid x:Name="G3" Margin="12" Background="Beige"><StackPanel><TextBlock Text="In this Grid3 container"/><!--AncestorType=我们需要查找的类型。比如Grid--><!--AncestorLevel= 我们需要向上查找几级--><!--Path=我们找到的元素需要绑定的属性。--><TextBlock Name="ces" Text="{Binding RelativeSource={RelativeSource AncestorType=Grid,AncestorLevel=1},Path=Name}"/></StackPanel></Grid></Grid></Grid></Grid>

三、运行结果

我们嵌套几个Grid,并在每个嵌套的Grid中都放入了一行文本用来显示自己所在的位置。设置了Margin使他有部分的重叠,可以更好的看到相互之间的层级关系。最内层使用一个TextBlock.在TextBlock的Text属性上使用RelativeSource。通过修改AncestorLevel 来设置向上查找Grid的等级。我们设置为1.向外层查找第一个找到的Grid对象。并绑定对应的Name。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69482.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

信息学奥赛复赛复习15-CSP-J2022-01乘方-数据类型、类型转换、数据类型溢出、指数、模拟指数运算

PDF文档公众号回复关键字:202410091 P8813 [CSP-J 2022] 乘方 [题目描述] 小文同学刚刚接触了信息学竞赛,有一天她遇到了这样一个题:给定正整数 a 和 b,求 a^b 的值是多少。 a^b 即 b 个 a 相乘的值,例如 2^3 即为 3 个 2 相乘,结果为 222=8 “简单!”小文心想,同时很快…

20222327 2024-2025-1 《网络与系统攻防技术》实验一实验报告

一.实验内容 1.了解Linux系统下的基本操作命令,能够处理一些命令出现的error。 2.掌握了栈与堆的概念以及在进程内存管理中的应用。 3.了解基本的汇编语言指令及其功能。 4.能够深刻理解BoF的原理以及如何运用payload完成BoF的攻击 二.实验过程 任务一 直接修改程序机器指令,…

春秋云镜 Privilege

春秋云镜 Privilege上来先用fscan扫一下.___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| __/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan ve…

AI在不同领域的应用与行业影响

本文将探讨AI在不同技术领域和行业中的广泛应用,以及这些应用如何影响和改变我们的世界。 I. 引言 AI技术正日益渗透到各个技术领域,从计算机视觉到自然语言处理,再到音频处理,AI的应用正变得越来越广泛。这些技术的发展不仅推动了科学研究的进步,也在实际应用中展现出巨大…

多态和继承

继承:通常意思就是儿子可以继承父亲的东西,在java里面也是一样的,当我们在同一个包内有多个类的成员变量/方法相同时可以使用继承,只可以在子非静态方法使用 继承就是把相同的成员变量/成员方法放在一个类中,然后使用extends这个关键字来让一个类来继承另一类从而达到代码…

自然人社工

人,是网络安全全流程中最大的弱点。针对人的攻击往往有出奇不意的效果。而想要利用人的弱点进行攻击,那么对目标的信息收集与了解就是非常重要的了。这篇文章记录了一些常用的用于对人进行身份信息收集的技术。这些技术常被用于溯源取证、社工攻击。 0x00 社工分析中的身份信…