将TextBox文本属性绑定到TextBlock附加属性,如Grid.Row

时间:2014-01-09 20:30:50

标签: c# wpf xaml

假设我有两个元素。让我们说,

  1. 的TextBlock
  2. 文本框
  3. 现在,如果我想将TextBox的Text绑定到TextBlock的Text,我可以这样做:

    <TextBox Text="{Binding Text, ElementName=someTextBlock}" />
    

    现在,如果我的TextBlock在Grid中,如下所示:

    <Grid>
        <TextBlock Text="someText" Grid.Row=1 Grid.Column=2 />
    </Grid>
    

    现在我的问题是如何将TextBox的Text绑定到Grid.Row或Grid.Column?

    我的意思是

    <TextBox Text={Binding Grid.Row, ElementName=someTextBlock} />
    

    上述代码不起作用。

    我知道我在这里做错了。

1 个答案:

答案 0 :(得分:5)

您需要使用以下语法:

<TextBox Text={Binding Path=(Grid.Row), ElementName=someTextBlock} />

Binding.Path中记录了这一点:

  

要绑定到附加属性,请在附加属性周围放置圆括号。例如,要绑定到附加属性DockPanel.Dock,语法是Path =(DockPanel.Dock)。

例如,这会显示2行,其中TextBox包含“1”,下面有TextBlock

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <TextBox Text="{Binding Path=(Grid.Row), ElementName=someTextBlock}"></TextBox>
    <TextBlock Grid.Row="1" Name="someTextBlock" Text="Foo" />
</Grid>