Wpf 相对源绑定不工作
我正在尝试通过相对源将一个Wpf 相对源绑定不工作,wpf,xaml,Wpf,Xaml,我正在尝试通过相对源将一个textbox的文本属性绑定到另一个,但没有成功。任何人请告诉我哪里做错了 请在下面找到xaml代码: <Grid> <TextBox x:Name="testtextbx" BorderBrush="Green" Height="20" Text="test" Margin="96,25,340,275">
textbox
的文本属性绑定到另一个,但没有成功。任何人请告诉我哪里做错了
请在下面找到xaml代码:
<Grid>
<TextBox x:Name="testtextbx"
BorderBrush="Green"
Height="20"
Text="test"
Margin="96,25,340,275">
</TextBox>
<Border Margin="55,54,64,63"
BorderThickness="1"
BorderBrush="Red"
>
<Border Margin="82,32,69,36"
BorderThickness="1"
BorderBrush="Black">
<TextBox Margin="36,36,35,28"
Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type TextBox},AncestorLevel=1},Path=Text}">
</TextBox>
</Border>
</Border>
</Grid>
<TextBox Margin="36,36,35,28"
Text="{Binding Text,ElementName=testtextbx}">
</TextBox>
如@mm8和@Lennart所建议 第二个文本框不是第一个文本框的相对祖先,因此这不起作用 您只需使用:
<Grid>
<TextBox x:Name="testtextbx"
BorderBrush="Green"
Height="20"
Text="test"
Margin="96,25,340,275">
</TextBox>
<Border Margin="55,54,64,63"
BorderThickness="1"
BorderBrush="Red"
>
<Border Margin="82,32,69,36"
BorderThickness="1"
BorderBrush="Black">
<TextBox Margin="36,36,35,28"
Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type TextBox},AncestorLevel=1},Path=Text}">
</TextBox>
</Border>
</Border>
</Grid>
<TextBox Margin="36,36,35,28"
Text="{Binding Text,ElementName=testtextbx}">
</TextBox>
谢谢您的建议,但我想以相对源代码的方式使用它,还想知道为什么我的代码不起作用@user3616471第二个文本框不是第一个文本框的相对祖先。它是一个嵌套的兄弟姐妹。第一个文本框不包含第二个文本框。testtextbx不是第二个文本框的相对祖先,因此这不起作用。使用@tabby建议的ElementName。虽然没有多大意义,但它可以与以下绑定表达式一起使用:Text=“{Binding Path=Children[0]。Text,RelativeSource={RelativeSource AncestorType=Grid}}”
。