WPF之Binding基础十 使用RelativeSource作为Binding的源
2013-06-23 15:12
274 查看
当我们想未一个控件绑定值的时候,我们需要将某个控件的数据绑定到指定的控件上,就可以用RelativeSource。
XAML代码
<Window x:Class="使用Binding的RelativeSource.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="第一层" Background="LightBlue" Margin="5">
<DockPanel Name="第二层" Background="Yellow" Margin="10">
<Grid x:Name="第三层" Background="Green" Margin="20">
<!--方案一,用cs-->
<!--<TextBox x:Name="zuihou" FontSize="20" Margin="10"/>-->
<!--方案二-->
<TextBox Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid},AncestorLevel=1},Path=Name}"/>
</Grid>
</DockPanel>
</Grid>
</Window>
CS代码
namespace 使用Binding的RelativeSource
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//这是第一种方法
//RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
////AncestorLevel是指以Binding目标控件为起点的目标偏移量
//rs.AncestorLevel = 1;
////AncestorType是说Bingding目标的类型
//rs.AncestorType = typeof(Grid);
//Binding binding = new Binding("Name") { RelativeSource=rs};
//this.zuihou.SetBinding(TextBox.TextProperty, binding);
}
}
}
XAML代码
<Window x:Class="使用Binding的RelativeSource.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid x:Name="第一层" Background="LightBlue" Margin="5">
<DockPanel Name="第二层" Background="Yellow" Margin="10">
<Grid x:Name="第三层" Background="Green" Margin="20">
<!--方案一,用cs-->
<!--<TextBox x:Name="zuihou" FontSize="20" Margin="10"/>-->
<!--方案二-->
<TextBox Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Grid},AncestorLevel=1},Path=Name}"/>
</Grid>
</DockPanel>
</Grid>
</Window>
CS代码
namespace 使用Binding的RelativeSource
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//这是第一种方法
//RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
////AncestorLevel是指以Binding目标控件为起点的目标偏移量
//rs.AncestorLevel = 1;
////AncestorType是说Bingding目标的类型
//rs.AncestorType = typeof(Grid);
//Binding binding = new Binding("Name") { RelativeSource=rs};
//this.zuihou.SetBinding(TextBox.TextProperty, binding);
}
}
}
相关文章推荐
- WPF之Binding基础六 使用ADO.NET作为Binding的数据源
- WPF之Binding基础四 使用DataContext作为Binding的源
- WPF之Binding基础七 使用XML数据作为Binding的源
- WPF之Binding基础九 使用ObjectDataProvider作为Binding的源
- WPF之Binding基础八 使用Linq数据作为Binding的源
- WPF之Binding基础四 使用DataContext作为Binding的源
- WPF之Binding基础五 使用集合对象作为列表控件的ItemSource
- WPF 使用DataContext 作为 Binding的源
- WPF之Binding基础二 控件作为Binding的数据源
- WPF中的binding(八)- 使用ObjectDataProvider对象作为Binding的Source
- WPF - 使用XML作为datagrid数据源进行binding
- WPF中的binding(二)- 使用CLR对象或者对象名称作为Binding的数据源
- WPF中的binding(九)- 使用Binding的RelativeSource
- WPF 中使用XML作为Binding数据源
- WPF中的binding(三)- 使用DataContext作为Binding的数据源
- WPF中的binding(四)- 使用集合对象作为列表控件的ItemsSource
- WPF中的binding(五)- 使用DataTable作为Binding的源
- WPF中的binding(六)- 使用XML数据作为Binding的源
- WPF中的binding(七)- 使用LINQ检索作为Binding的数据源
- [Windows Forms] : BindingSource使用模式 - Data Binding基础知识 (二)