将TextBox的Text属性绑定到TextBlock的附加属性,如Grid.Row

Khu*_*shi 1 c# wpf xaml

假设我有两个元素.可以说,

  1. TextBlock的
  2. 文本框

现在,如果我想将TextBox的Text绑定到TextBlock的Text,我可以执行以下操作:

<TextBox Text="{Binding Text, ElementName=someTextBlock}" />
Run Code Online (Sandbox Code Playgroud)

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

<Grid>
    <TextBlock Text="someText" Grid.Row=1 Grid.Column=2 />
</Grid>
Run Code Online (Sandbox Code Playgroud)

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

我的意思是

<TextBox Text={Binding Grid.Row, ElementName=someTextBlock} />
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用.

我知道我在这里做错了什么.

Ree*_*sey 5

您需要使用以下语法:

<TextBox Text={Binding Path=(Grid.Row), ElementName=someTextBlock} />
Run Code Online (Sandbox Code Playgroud)

这在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>
Run Code Online (Sandbox Code Playgroud)