2012-11-28 13 views
6

ciao; ci sono textbox di origine e di destinazione txttarget ha un legame con txtsource. quando scrivi qualcosa in txtsource, txttarget è cambiato. Tutto è buono. Ma scrivendo su txttarget, non vedo alcuna modifica su txttarget? c'è la modalità TwoWay. La modalità Twoway non è abbastanza? posso scrivere senza usare "UpdateSourceTrigger = PropertyChanged"?Perché sto usando UpdateSourceTrigger = PropertyChanged, TwoWay non è abbastanza?


    <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> 

risposta

14

txtTarget.Text viene aggiornato ogni volta che la sorgente associata (txtSource.Text) cambia.

La modalità di associazione è TwoWay che significa che le modifiche a txtTarget.Text si rifletteranno sulla sorgente associata. Quando? Dipende dalla proprietà Binding.UpdataSourceTrigger.

Se si desidera che il binding di destinazione aggiorni il binding dell'origine quando si modifica, è necessario utilizzare Binding.UpdataSourceTrigger = OnPropertyChanged, altrimenti si aggiornerà l'origine di associazione quando txtTarget interrompe l'attivazione (comportamento predefinito).

12

L'impostazione predefinita UpdateSourceTrigger per un TextBox è LostFocus (vedi Binding.UpdateSourceTrigger). Se non si specifica PropertyChanged come UpdateSourceTrigger, ciò che si digita in non verrà scritto in txtSource finché lo non viene messo a fuoco (ovvero la scheda non è attiva).

Problemi correlati