Bonjour,
ce pourrait être une question .Net mais mon "problème" vient d'un binding en silverlight.
J'ai besoin de récupérer depuis un webservice des "domaines".
Un domaine et une liste d'ensemble de valeur de cardinalité inconnu.
Ex: Domaine1 : { {1,"voiture"} , {2,camion}....}
Domaine2 { {"FR","Francais",3} , {"ES","ESPAGNE",12} ....}
Domaine3 { {3},{5},{25}.....}
J'ai donc decidé que mon webservice retourne une List<Object[]>.
Maintenant depuis une combobox je souhaite pouvoir afficher un domaine en spécifiant par binding quel index de mon tableau afficher.
Par exemple pour mon domaine1 si je veux afficher le nom du vehicule en recuperant son ID je fais:
<ComboBox Width="150" Height="32" ItemsSource="{Binding Domaine1}" SelectedValuePath="[0]" DisplayMemberPath="[1]"></ComboBox>
C'est la qu'intervient la question du titre du post. Avec un List<object[]> cela ne fonctionne pas.
Erreur System.Windows.Data*: impossible de se connecter à l'index '1' dans l'objet '1,voiture' (type 'System.String'). BindingExpression : Path='[1]' DataItem='1,voiture' (HashCode=-1871399090); l'élément cible est 'System.Windows.Controls.TextBlock' (Name=''); la propriété cible est 'Text' (type 'System.String').
Par contre avec un List<List<object>> cela fonctionne parfaitement.
Dans l'absolue rien ne me force a utiliser le List<object[]> je vais donc utiliser l'autre solution mais je me pose tout de même la question: Quest ce qui differencie ces deux collections au niveau du binding? J'ai l'impression que le object[] est autoconcaténé par le TextBlock du Combobox?
Voila rien d'urgent juste une question existentielle!
Merci d'éclairer ma lanterne
Partager