我为什么要使用UpdateSourceTrigger =的PropertyChanged,双向不够?

2019-08-03 06:34发布

喜; 有源和目标文本框txttarget有一个结合txtsource。 写在txtsource东西的时候,txttarget是changed.Everything是好的。 但在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>

Answer 1:

txtTarget.Text是每当结合的源(更新txtSource.Text )的变化。

装订模式是TwoWay这意味着对变化txtTarget.Text将反映到绑定源。 什么时候? 这取决于Binding.UpdataSourceTrigger财产。

如果你希望你的目标结合更新变化,你必须使用你的时候源绑定Binding.UpdataSourceTrigger = OnPropertyChanged ,否则当txtTarget losts对焦(默认行为),你将更新绑定源。



Answer 2:

默认UpdateSourceTrigger一个TextBoxLostFocus (见Binding.UpdateSourceTrigger )。 如果没有指定PropertyChanged的UpdateSourceTrigger,你键入txtTarget将不会被写入txtSource直到txtTarget失去焦点(也就是你标签关闭它)。



文章来源: Why am i using UpdateSourceTrigger=PropertyChanged ,TwoWay is not enough?