2011-06-30 63 views
0

第一個具有所需的效果 - 更改文本框中的文本並更改標籤的內容,而第二個不更改。爲什麼?爲什麼在這種情況下DataBinding不能反之亦然?

<StackPanel> 
     <Label Name="displayText" Content="{Binding ElementName=displayText, Path=Content, Mode=TwoWay}"/> 
     <TextBox Name="sourceInfo"/> 
    </StackPanel> 

<StackPanel> 
     <Label Name="displayText"/> 
     <TextBox Name="sourceInfo" Text="{Binding ElementName=displayText, Path=Content, Mode=TwoWay}"/> 
    </StackPanel> 
+0

你確定第一個代碼段正在工作嗎? –

回答

1

這兩項工作:

<StackPanel> 
    <Label Name="displayText2" 
      Content="{Binding ElementName=sourceInfo2, Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 
    <TextBox Name="sourceInfo2"/> 
    </StackPanel> 

    <StackPanel> 
    <Label Name="displayText"/> 
    <TextBox Name="sourceInfo" 
       Text="{Binding ElementName=displayText, Path=Content, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 
    </StackPanel> 

您需要綁定到正確的項目正確的屬性。在頂級案例中,您將標籤貼到自己的內容屬性... oops。

+0

對我的錯字感到抱歉,在詢問的時候一定要看溫網。我想問的是你沒有UpdateSourceTrigger屬性就清楚地寫出了什麼。刪除它,你會看到在改變目標文本框文本時,源標籤的內容不會改變。所以Source <-Target的默認觸發器必須是別的東西。 Thx agent-j –

+0

@Vishal,默認事件是'Leave',因此當您從文本框中跳出時,綁定將生效。你的例子沒有其他控件可以選擇,所以這就是爲什麼它不起作用。 –

相關問題