2014-01-09 159 views
1

假設我有兩個元素。比方說,將文本框的文本屬性綁定到TextBlock的附加屬性,如Grid.Row

  1. 的TextBlock
  2. 文本框

現在,如果我要綁定文本框的文本TextBlock的文字,我可以這樣做:

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

現在,如果我TextBlock在網格內如下:

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

現在我的問題是如何將文本框的文本綁定到Grid.Row或Grid.Column?

我的意思是

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

上面的代碼不起作用。

我知道我在這裏做錯了事。

回答

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> 
+0

你打我吧:P –

+0

謝謝。你是一個拯救生命的人。 – Khushi