Bonjour,
le sujet a déjà été soulevé à maintes reprises mais je sollicite votre expérience pour ce sujet.
J'ai réalisé une listView contenant des données provenant d'un fichier XML.
J'ai bindé cela avec un XMLDataProvider.
A aucun moment je n'ai utilisé les ObservableCollection, mais maintenant pour la suite de mon projet, je ne sais pas si je dois m'y mettre ou pas.
J'ai créé des fonctions Add, Insert, Delete pour ma listView. Cela fonctionne très bien en travaillant directement sur le XML
exemple méthode Delete qui ajoute une ligne à ma listView
J'ai également réalisé une fonction de tri de ma listView en me basant sur http://www.switchonthecode.com/tutor...t#comment-2587
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 private void Delete_Click(object sender, RoutedEventArgs e) { int selectIndexLine; xdpData = FindResource(xdpDataName) as XmlDataProvider; xmlDocData = xdpData.Document; //set indexLine everytime we click on listView selectIndexLine = listView.Items.IndexOf(listView.SelectedItem); //Node from XML begin to 1 and not 0 selectIndexLine++; //delete the node select from listView only if there is unless one element if (selectIndexLine > 0) xmlDocData.DocumentElement.RemoveChild(xmlDocData.DocumentElement.SelectSingleNode(trackPathXML + "[" + selectIndexLine + "]")); }
cette fonction de tri m'a un peu chamboulé mes méthodes insert, et delete.
Comme j'agis directement entre fichier XML et listView sans passer par ObservableCollection, je me servais pour Deleter un row par exemple de l'index du row dans ma listView. Chose qui n'est plus possible en triant mes enregistrements, vu qu'il est possible que l'élément 1 de ma listView corresponde à l'élément 3 dans mon fichier XML par exemple. Ce qui fait que je pointe sur le mauvais row.
Ma question (finalement) est la suivante:
- Est-ce qu'il serait judicieux d'ajouter une balise <id> dans mon fichier XML et m'en servir dans le code behind pour, même en cas de tri, bien sélectionné l'élément choisi à l'écran ?? et ainsi continuer d'interragir directement avec le fichier XML (peut-être archaique mais assez simple)
- passer par les ObservableCollection (est-ce que cela me faciliterait la vie à la longue ??? )
Merci de vos commentaires...
Partager