ouais effectivement je suis pas au clair avec tout ca...
merci pour les infos.
Je profite du post pour poser 1 nouvelle question, toujours en rapport avec ce Bind.
J'ai comme source mon fichier XML que je bind avec un XMLDataProvider en XAML et code behind. J'affiche mes éléments de mon XML dans une listView.
Maintenant j'arrive à ajouter, modifier, supprimer les données de la listview et reporter ca directement sur mon fichier XML.
Par contre, j'ai une ComboBox dans ma listView et je ne sais pas trop comment m'y prendre pour pouvoir afficher les ItemsSource.
1. Dans mon fichier XML, j'ai 1 attribut <mon_contenu>F</mon_contenu> qui ne contient qu'un char.
2. J'ai plusieurs valeurs possibles pour ma Combo ex. F, B, C, D
3. J'arrive bien entendu à Binder ma combobox sur mon fichier XML et affiché la bonne valeur.
4. maintenant, et c'est là que ca se corse. Je dois (selon moi) créer une ObservableCollection et créer toutes mes valeurs possibles pour ma combo en code behind.
J'arrive à faire cela et à les afficher dans ma COmbo, mais par contre je n'arrive plus dans le même temps, à reprendre ma valeur de mon XML (donc la vraie valeur du row)
En résumé, mon problème est le suivant : est-il possible d'afficher dans le combo un ItemSelected provenant d'une certaine source (XMLDataProvider) puis les ItemsSource depuis une autre source (ObjectDataProvider) ???
J'espère m'être bien fait comprendre .
Voici une partie de mon code pour mieux me faire saisir.
1 2 3 4 5 6 7 8 9
| ObjectDataProvider odp = new ObjectDataProvider();
private ObservableCollection<string> libelleProduit = null;
public ObservableCollection<string> LibelleProduit
{
get { return libelleProduit; }
set { libelleProduit = value; }
} |
1 2 3 4 5 6 7 8
| libelleProduit = new ObservableCollection<string>();
libelleProduit.Add("produit1");
libelleProduit.Add("peroeji2");
odp = (ObjectDataProvider)this.FindResource("odpProduit");
if (odp != null)
{
odp.ObjectInstance = LibelleProduit;
} |
XAML : Resources
1 2 3 4 5 6 7
| Window.Resources>
<!--put in Resources-->
<XmlDataProvider x:Key="myDataXML" XPath="cycling/track"/>
<ObjectDataProvider x:Key="odpProduit"/>
</Window.Resources> |
XML : déclaration listView
<ListView x:Name="listView" ItemsSource='{Binding Source={StaticResource myDataXML}}'
ComboBox: (ne marche pas mais syntaxe selon mon idée d'avoir 2 sources différentes
1 2
| SelectedItem="{Binding Source={StaticResource myDataXML XPath=type, Mode=TwoWay}"
ItemsSource="{Binding Source={StaticResource odpProduit}}" |
Merci d'avance pour vos infos
Partager