喜;有源文件框和目标文本框txttarget有一个绑定到txtsource。当在txtsource中写一些东西时,txttarget就会改变。一切都很好。但是在txttarget上写道,我在txttarget上看不到任何变化?有TwoWay模式。 Twoway模式还不够?我可以在不使用“UpdateSourceTrigger = PropertyChanged”的情况下编写吗?
<Grid>
<TextBox Height="23" HorizontalAlignment="Left" Margin="155,62,0,0" Name="txtSource" VerticalAlignment="Top" Width="120" />
<TextBox Height="23" HorizontalAlignment="Left"
Text="{Binding ElementName=txtSource,Path=Text,Mode=TwoWay}"
Margin="155,113,0,0" Name="txtTarget" VerticalAlignment="Top" Width="120" />
</Grid>
答案 0 :(得分:19)
txtTarget.Text
)发生更改, txtSource.Text
就会更新。
绑定模式为TwoWay
,这意味着对txtTarget.Text
的更改将反映到绑定的源。什么时候?这取决于Binding.UpdataSourceTrigger
属性。
如果您希望目标绑定在更改时更新源绑定,则必须使用
Binding.UpdataSourceTrigger = OnPropertyChanged
,否则当txtTarget失去焦点时,您将更新绑定源(默认行为)。
答案 1 :(得分:15)
UpdateSourceTrigger
的默认TextBox
为LostFocus
(请参阅Binding.UpdateSourceTrigger)。如果您没有将PropertyChanged
指定为UpdateSourceTrigger,那么在txtTarget
失去焦点之前,您在txtSource
中输入的内容将不会写入txtTarget
(即您关闭它)