假设我有两个元素。让我们说,
现在,如果我想将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} />
上述代码不起作用。
我知道我在这里做错了。
答案 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>