WPF利用通过父控件属性来获得绑定数据源RelativeSource
2015-01-20 23:56
579 查看
WPF利用通过父控件属性来获得绑定数据源RelativeSource
有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中放置一个文本控件,来显示父级控件的名称。1、XAML
Html代码
<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、后台代码
Csharp代码
RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
Csharp代码
//设定为离自己控件最近的第二层父控件
rs.AncestorLevel = 2;
Csharp代码
//设定父控件为Gird类型
rs.AncestorType = typeof(Grid);
Csharp代码
//绑定源为Grid的名称
Binding binding = new Binding("Name") { RelativeSource=rs};
Csharp代码
//将绑定的源放在文本显示内容中
this.textBox1.SetBinding(TextBox.TextProperty, binding);
3、以上后台代码等同于XAML中的
Html代码
<TextBox x:Name="textBox1" FontSize="24" Margin="10" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid},AncestorLevel=2},Path=Name}"/>
相关文章推荐
- WPF利用通过父控件属性来获得绑定数据源RelativeSource
- WPF利用通过父控件属性来获得绑定数据源RelativeSource
- WPF绑定数据源之RelativeSource
- WPF绑定各种数据源之元素控件属性
- 【WPF】WPF通过RelativeSource绑定父控件的属性
- WPF绑定各种数据源之元素控件属性
- WPF绑定数据源之RelativeSource
- Flex中利用sourceChanged事件检测图片(image)控件的图片源(source属性)是否改变的例子
- 【WPF】对Frame控件的Content属性做绑定时出现的一个小问题
- WPF的控件Binding的ElementName/RelativeSource具体用法
- WPF 绑定一(数据源为控件)
- 【转】WPF中PasswordBox控件的Password属性的数据绑定
- 在XAML里绑定 ElementName RelativeSource 属性
- [WPF - 之一问一答系列] 如何从WPF的WebBrowser控件中获得WebResponse内容?为何WebBrowser控件的Navigated事件参数NavigationEventArgs的WebResponse属性始终为null?
- WPF DevExpress Chart控件 界面绑定数据源,不通过C#代码进行绑定
- WPF学习笔记——ListBox用ItemsSource绑定数据源
- WPF : Binding的3个属性: Source, RelativeSource, ElementName
- 利用反射通过属性名获得属性的值
- 通过属性编辑器灵活调整数据控件的绑定字段
- wpf ComboBox 控件利用DataSet数据绑定