Oggi in uno dei thread sul forum Microsoft, è stato chiesto come sincronizzare il valore di una combobox con un valore letto da un database.
Siccome il Post con il titolo uguale a questo faceva la sincronizzazione dal valore di una Combobox a quello di una Textbox, ho fatto una modifica al codice di questa mini applicazione, per far vedere che possiamo sincronizzare qualsiasi tipo di controllo.
Come ho modificato il codice e perché
La modifica al codice dell’esempio precedente è stata semplicissima:
<StackPanel Grid.Row="0"> <ComboBox Margin="4,20, 4, 20" HorizontalAlignment="Stretch" VerticalAlignment="Center" ItemsSource="{Binding ListOfItems}" DisplayMemberPath="Value" SelectedValue="{Binding SelectedItem, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> <TextBlock Margin="4,20, 4, 20" Background="Yellow" Foreground="Navy" Text="{Binding Path=SelectedItem.RealValue, UpdateSourceTrigger=PropertyChanged}"/> <ComboBox Margin="4,20, 4, 20" HorizontalAlignment="Stretch" VerticalAlignment="Center" ItemsSource="{Binding ListOfItems}" DisplayMemberPath="RealValue" SelectedValue="{Binding SelectedItem, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" /> </StackPanel>
Ho infatti duplicato la combobox dell’esempio e l’ho modificata in modo che mostrasse una property diversa, quindi invece che Value, RealValue, cambiando la DisplayMemberPath.
Cosa ho ottenuto?
Di mostrare come modificando il valore selezionato della prima combobox, varia quello della seconda, e varia anche la Textbox e vice versa, modificando il valore della seconda combobox varia la prima e la sua textbox.
Ma anche premendo i bottoni previous e next i valori si modificano.
Seleziono un valore sulla prima combobox.
Come vedete le 2 combobox contengono il valore precedentemente selezionato, ora cambio il valore sulla seconda combobox.
E i tre controlli sono nuovamente sincronizzati.
Ora premo il tasto next e stando alla lista nella seconda immagine mi aspetto di vedere il valore Banana.
E banana fu.
Il progetto modificato potete scaricarlo qui:
Un mini video che registra il programma in azione potete scaricarlo qui: