Bonjour,
Décidément, les Bindings me causent bien des soucis en ce moment...
Voici le problème :
J'ai une classe Membre avec 1 propriété Ville qui est elle-même un objet Ville comportant les 3 propriétés suivantes : ID, Nom, CodePostal. De sorte que pour accéder au nom de la ville d'un membre, je fais : MonMembre.Ville.Nom
J'ai créé une Textbox CodePostal bindée à la propriété Ville.CodePostal de mon objet Membre. J'ai aussi créé une Combobox Ville et là, le binding me pose problème. Tant que la textbox CodePostal est vide, je veux que la Combobox soit désactivée (ça, c'est ok). Dès que la textbox CodePostal atteint 5 caractères, je veux que la combobox liste toutes les villes ayant ce code postal (c'est aussi ok, je l'ai bindé à une DataView qui contient la liste des villes). Le DataContext de la combo Ville se retrouve donc défini sur cette DataView, seulement, je veux que la propriété SelectedItem soit bindée à la propriété Ville.ID de mon objet Membre (donc un DataContext différent).
Voici le code Xaml pour la textbox CodePostal :
Et pour la combobox Ville :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<TextBox Text="{Binding Mode=TwoWay, Path=Ville.CodePostal}" />
Avec ce code, ça marche, sauf que la propriété Ville de mon objet Membre n'est jamais renseignée, vu que le DataContext de la combo est la DataView qui contient la liste des villes ayant le même CodePostal... J'ai besoin de ce DataContext uniquement pour le ItemsSource (défini en code-behind), mais pas pour le SelectedItem. J'espère avoir été clair.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <ComboBox DisplayMemberPath="Nom" SelectedItem="{Binding Path=Ville.Nom}" SelectedValue="{Binding Path=Ville.ID}" SelectedValuePath="ID" />
Comment résoudre ce problème ?
Partager