J'ai un dictionnaire backend qui est utilisé pour la synchronisation (c'est-à-dire pour un magasin de fichiers et un service web). En plus de cela, j'ai besoin de générer des listes/énumérables pour l'interface WPF à consommer. Quelle est la différence entre soit accrocher un énumérable jusqu'au dictionnaire, et appelant PropertyChanged
quand il est mis à jour à l'aide d'un ObservableCollection et l'ayant appelé automatiquement son CollectionChanged
.Manipulation ObservableCollection vs Remplacement d'une liste
La synchronisation se fait automatiquement en arrière-plan et certains éléments peuvent être supprimés, d'autres peuvent être mis à jour. Je veux propager cette information à l'interface utilisateur WPF et à l'utilisateur en douceur. (c'est-à-dire que si un élément est supprimé, l'ensemble de l'affichage ne devrait pas être réinitialisé). Je veux également ajouter une animation lorsque des éléments sont ajoutés et supprimés (c'est-à-dire fondu avant et arrière) - est-ce possible si je remplace la liste entière ou va-t-elle provoquer le retour de chaque élément?
Alors dois-je:
1) utiliser une collection observable et écrire une logique de synchronisation de fantaisie entre le dictionnaire et la collection? 2) utiliser les méthodes d'extension linq pour convertir le dictionnaire en énumérable et appeler simplement propertychanged sur l'énumérable quand il change? 3) synchroniser entre un dictionnaire et une liste, en remplaçant la liste à chaque mise à jour?
En outre, comment l'un de ces éléments fonctionnerait-il avec les opérations de tri et de filtrage qui sont effectuées uniquement pour l'interface utilisateur? (si j'ai besoin de filtrer certains éléments du dictionnaire en fonction de la sélection de l'utilisateur, devrais-je utiliser une méthode similaire à celle que vous avez recommandée?)