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

UpdateSourceTriggeraのデフォルトTextBoxLostFocus( Binding.UpdateSourceTriggerを参照) です。PropertyChangedUpdateSourceTrigger として指定しない場合、入力内容は がフォーカスを失うまで (つまり、タブで移動するまで)txtTarget書き込まれません。txtSourcetxtTarget

于 2012-11-28T08:58:01.680 に答える