11

你好; 有源文本框和目标文本框 txttarget 绑定到 txtsource。在txtsource中写东西时,txttarget发生了变化。一切都很好。但是在 txttarget 上写,我没有看到 txttarget 有任何变化?有双向模式。双向模式还不够?我可以在不使用“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>
4

2 回答 2

23

txtTarget.Text每当绑定源 ( txtSource.Text) 更改时更新。

绑定模式TwoWay意味着更改txtTarget.Text将反映到绑定源。什么时候?这取决于Binding.UpdataSourceTrigger财产。

如果您希望目标绑定在更改时更新源绑定,则必须使用 Binding.UpdataSourceTrigger = OnPropertyChanged,否则您将在 txtTarget 失去焦点时更新绑定源(默认行为)。

于 2012-11-28T08:59:40.570 回答
17

a的默认值UpdateSourceTriggerTextBoxLostFocus请参阅Binding.UpdateSourceTrigger)。如果您没有指定PropertyChanged为 UpdateSourceTrigger,那么您输入的内容txtTarget将不会被写入,txtSource直到txtTarget失去焦点(即您将其关闭)。

于 2012-11-28T08:58:01.680 回答