WPF利用通过父控件属性来获得绑定数据源RelativeSource
有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中放置一个文本控件,来显示父级控件的名称。
1、XAML
- <Grid x:Name="g1" Background="Red" Margin="10">
- <DockPanel x:Name="d1" Background="Orange" Margin="10">
- <Grid x:Name="g2" Background="Yellow" Margin="10">
- <DockPanel x:Name="d2" Background="LawnGreen" Margin="10">
- <TextBox x:Name="textBox1" FontSize="24" Margin="10"/>
- </DockPanel>
- </Grid>
- </DockPanel>
- </Grid>
2、后台代码
- RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
- //设定为离自己控件最近的第二层父控件
- rs.AncestorLevel = 2;
- //设定父控件为Gird类型
- rs.AncestorType = typeof(Grid);
- //绑定源为Grid的名称
- Binding binding = new Binding("Name") { RelativeSource=rs};
- //将绑定的源放在文本显示内容中
- this.textBox1.SetBinding(TextBox.TextProperty, binding);
3、以上后台代码等同于XAML中的
- <TextBox x:Name="textBox1" FontSize="24" Margin="10" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid},AncestorLevel=2},Path=Name}"/>
WPF利用通过父控件属性来获得绑定数据源RelativeSource的更多相关文章
- WPF 使用附加属性增加控件属性
使用附加属性增加控件属性,使得这个附加属性在使用的时候没有局限性,可以在任何的控件中使用它来增加所需要的属性,使得控件的属性使用起来非常灵活 一.自定义附加属性 using System; using ...
- 浅析:点击父控件时,子控件中的textview自动进入选中状态
原因:父控件属性android:clickable="true",而textview之类的自控件默认不可点击,没有独立的点击监听,这样选中父控件时,textview之类的子控件也进 ...
- 【WPF】WPF通过RelativeSource绑定父控件的属性
1.后台代码实现绑定父控件的属性 RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor); //设定为离自己控件 ...
- wpf 父控件透明子控件不透明
在wpf开发中遇到子控件会继承父类控件属性的问题, 例如: <StackPanel Orientation="Horizontal" Grid.Row="1&quo ...
- ParentWindow属性及其一系列函数的作用——适合于那些不需要父控件管理内存释放的子控件
TWinControl = class(TControl) property ParentWindow: HWnd read FParentWindow write SetParentWindow; ...
- C# WPF 父控件通过使用可视化树找到子控件
在我们使用WPF设计前台界面时,经常会重写数据模板,或者把控件放到数据模板里.但是一旦将控件放到数据模板中,在后台就没有办法通过控件的名字来获取它了,更没办法对它进行操作(例如,隐藏,改变控件的某个值 ...
- WPF编程,通过Double Animation动态更改控件属性的一种方法。
原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...
- WPF编程,通过【帧】动态更改控件属性的一种方法。
原文:WPF编程,通过[帧]动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/detail ...
- C# 获取父控件容器的属性
C# 获取父控件容器的属性 BindingNavigator bindingNavigator = (sender as ToolStripButton).GetCurrentParent() as ...
随机推荐
- 分界线<hr/>
<hr align="center" noshade="noshade" width="90px" color="#1DAB ...
- PowerPC架构与X86架构
PowerPC架构 PowerPC是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的POWER(Performance Optimized With ...
- 【AWS】AWS云计算赋能数字化转型专题研讨会
点我查看详情 欢迎莅临
- Python2 socket TCPServer 多线程并发 超时关闭
在阿里云上测试过,可以直接使用. 用IP和端口发送数据,会返回echo:+接收到的数据 #coding=utf-8 import socket import threading,getopt,sys, ...
- 爬虫五 Beautifulsoup模块详细
一.基本使用 from bs4 import BeautifulSoup htmlCharset = "GB2312" soup=BeautifulSoup(html_doc,'l ...
- 标准c字符和字符串的使用方法
cppreference.com -> Standard C String & Character -> 详解 标准c字符和字符串 atof 语法: #include &l ...
- Java 如何读取resources
Sample in Github 1.一般使用Maven创建Java工程,代码文件在src/main/java文件夹中,资源文件在src/main/resources文件夹中,Java代码为什么可以读 ...
- django-admin 修改admin自带模版
还不知道怎么指定修改每个页面,我就把把所有修改写在一个页面,通过url进行判断是否是是否显示修改内容,修改的是change_form.html ,在admin里面可以找到 {% block objec ...
- Python 1 的数据类型
Python3 中有六个标准的数据类型: Number(数字)String(字符串)List(列表)Tuple(元组)Sets(集合)Dictionary(字典) 1.Number(数字) pytho ...
- jelly
http://pwnny.cn/original/2016/06/26/MakeBlog.html#NativeBuild01 Jekyll和Github搭建个人静态博客