|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre actif
![]() |
Bonjour,
Juste pour faire part d'une chose qui peut être utile à certains et qui pourrait pourquoi pas entrer dans les contributions J'ai eu besoin d'utiliser une liste qui lance un évènement avant suppression d'un ou plusieurs éléments de cette liste (à la manière des triggers en base de données). J'ai donc créé ces deux classes : Code :
Code :
Le type Point peut être remplacé par n'importe quel type. Bon dév, Arnaud D.
__________________
-- Arnaud DANEELS |
||||
|
|
10
|
|
|
#2 | ||
|
Membre actif
![]() |
avec l'implémentation de RemoveRange et RemoveAt, c'est mieux :
Code :
__________________
-- Arnaud DANEELS |
||
|
|
00
|
|
|
#3 |
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 839 ![]() |
Tu peux aussi utiliser BindingList<T> ou ObservableCollection<T>Cela dit ça ne donnera pas exactement le même comportement :
- l'évènement sera déclenché après l'ajout ou la suppression, et non avant (je ne sais pas si c'est un problème pour l'usage que tu en fais) - l'évènement sera déclenché pour chaque élément ajouté ou supprimé, et non pas pour l'ensemble des éléments à ajouter ou supprimer (dans le cas de AddRange/RemoveRange/RemoveAll)
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
|
00
|
|
|
#4 |
|
Membre actif
![]() |
Tout d'abord merci de l'attention portée
Oui, c'est vrai, j'aurai pu partir sur une ObservableCollection. L'implémentation que j'ai faite a pour différences de : faire un évènement pour une action (la suppression ici ; je n'aime pas trop tout retrouver dans un switch L'évènement est levé pour une liste d'éléments et non un élément afin d'optimiser le côté performance. Et oui, l'évènement est levé avant la suppression car j'avais besoin d'accéder à son contenu (c'est juste un choix lors de l'écriture, je sais qu'on a accès aux éléments supprimés d'une ObservableCollection via e.OldItems). Bref, par rapport au besoin, je trouvais cette méthodologie plus propre. S'il y a des avis contraires ou nuancés, je suis tout ouïe voire je serai ravi de les lire (il faut toujours sortir de sa tour d'ivoire
__________________
-- Arnaud DANEELS |
|
|
00
|
|
|
#5 | ||
![]() ![]() ![]() ![]() Thomas LevesqueDéveloppeur .NET Inscription : février 2004 Messages : 17 839 ![]() |
Disons que ton implémentation a un défaut un peu gênant...
Si je fais ça : Code :
__________________
Pas de questions techniques par MP ! Le forum est là pour ça... |
||
|
00
|
Copyright © 2000-2013 - www.developpez.com