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 :
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
Et donc maintenant, quand je supprime une entrée, celle-ci est bien supprimer dans ma List (j'ai vérifié avec le debugger).
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