Bonjour,
Je cherche à créer une combobox pour binder un type complexe à un autre.
Alors je fais un objet Commande qui est composé d'un autre objet Etablissement.
Pour sélectionner l'établissement de la commande je fais ceci.
La liste des établissements :
Ma combobox binder sur cette liste en source et sur l'Etablissement de la commande pour l'item selectionné:Code:
1
2
3
4
5
6
7
8
9
10
11
12 private static ObservableCollection<Etablissement> _ListeEtablissement = null; public ObservableCollection<Etablissement> ListeEtablissement { get { if (_ListeEtablissement == null) { _ListeEtablissement = new ObservableCollection<Etablissement>(DataAccess.EntitiesContext.Context.Etablissements.OrderBy(F => F.Nom)); } return _ListeEtablissement; } }
Par la suite je cherche donc à afficher l'adresse de l'Etablissement de la commande; ce qui donne ceci :Code:
1
2
3
4
5
6 <ComboBox Grid.Column="0" Grid.Row="1" x:Name="Adresse" Margin=" 0 0 0 0" Width="180" HorizontalAlignment="Left" ItemsSource="{Binding ListeEtablissement}" SelectedValue="{Binding CommandeFournisseur.Etablissement,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="{Binding Etablissement}" DisplayMemberPath="Nom" />
Le problème est que lorsque je change l’établissement de la commande mon textblock ne se met pas à jour.Code:
1
2 <TextBlock Grid.Column="0" Grid.Row="3" Text="{Binding CommandeFournisseur.Etablissement.Adresse.NomVoie,Mode=OneWay}" Visibility="Visible"/>
Je ne sais pas ou créer le RaiseProperty pour remonter le changement.
Mon Etablissement et ma commande sont des objets créés via Entity Framework.
Dans mon ViewModel ma commande est récupérée de la façon suivante :
Code:
1
2
3
4 public CommandeFournisseur CommandeFournisseur { get { return ObjectEntity as CommandeFournisseur; } }