Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 相对源绑定不工作_Wpf_Xaml - Fatal编程技术网

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}}”