Mode,AncestorLevel,AncestorType
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="231.398" Width="347.867">
<Grid x:Name="g1" Margin="10" Background="Red">
<DockPanel x:Name="d1" Margin="10" Background="Green">
<Grid x:Name="g2" Margin="10" Background="Blue">
<DockPanel x:Name="d2" Margin="10" Background="Yellow">
<TextBox x:Name="txt" Text="{Binding Path=Name, RelativeSource={RelativeSource AncestorLevel=1, AncestorType={x:Type Grid},Mode=FindAncestor}}"></TextBox>
</DockPanel>
</Grid>
</DockPanel>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace WpfApp1
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
//RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
//rs.AncestorLevel = 1;
//rs.AncestorType = typeof(Grid);
//Binding b = new Binding("Name") { RelativeSource = rs };
//this.txt.SetBinding(TextBox.TextProperty, b);
}
}
}