Bonjour ou reBonjour,
J'ai un problème sur le rafraichissement de ma DataGrid.
Celle-ci est bindé sur une List de FileUplaod.
FileUpload ets une classe que j'ai développée et qui contient :
- un Guid
- un filename
- un State (pour l'upload)
- une Progression (int pour la progressbar)
- un checksum
Quand je clic sur le bouton "Delete" d'une ligne, celle-ci va bien me supprimer mon FileUpload dans ma List mais ne met pas à jour la datagrid.
J'ai lu sur internet qu'il fallait implémenter INotifyCollectionChanged et déclencher un event quand une modif a lieu. C'est donc ce que j'ai fait : quand je supprime une entrée, je lance une méthode, qui lance l'événement.
Cela ne marchait tourjours pas.
Après j'ai lu qu'il y a avait une histoire de OneWay, TwoWay. J'ai donc rajouté le TwoWay dans le Binding : toujours sans succès.
J'ai donc essayé la méthode pas propre :
Et donc maintenant, quand je supprime une entrée, celle-ci est bien supprimer dans ma List (j'ai vérifié avec le debugger).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 mydatagrid.ItemsSource = null; mydatagrid.ItemSource = _upload.ListFiles; //_upload est un objet qui a comme attribut ma List
De plus, la ligne correspondante est bien retirée du DataGrid MAIS la ligne juste en dessous disparait aussi pour laisser place à un rectangle vide
Voici quelques screens pour une meilleur compréhension :
Mon DataGrid :
Je supprime l'entrée Test0 et voici ce qu'il se passe :
Test0 est bien supprimé MAIS Test1 disparait sans être supprimé.
Et enfin, pour le fun, je supprimer l'entrée Test2 :
Test2 est supprimé et Test1 réapparait .... MAGIIIIE
Dites ... c'est grave docteur ?
Est-ce que vous pourriez m'aider ?
Merci par avance,
Guillaume
Partager