Press "Enter" to skip to content

Sincronizzare il contenuto di una combobox con una variabile del Model Addendum 2

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.

01_combosinc

Seleziono un valore sulla prima combobox.

02_combosinc

Come vedete le 2 combobox contengono il valore precedentemente selezionato, ora cambio il valore sulla seconda combobox.

03_combosinc

E i tre controlli sono nuovamente sincronizzati.

04_combosinc

Ora premo il tasto next e stando alla lista nella seconda immagine mi aspetto di vedere il valore Banana.

05_combosinc

E banana fu.

 

Il progetto modificato potete scaricarlo qui:

Un mini video che registra il programma in azione potete scaricarlo qui: