2009-12-17 3 views
2

Existe-t-il un moyen de filtrer/trier une collection observable et de conserver les notifications? J'ai regardé autour de moi et j'ai trouvé CollectionViewSource qui filtre et trie la collection comme j'en ai besoin mais quand la propriété items dans laquelle le filtre repose change dans la collection source, elle n'actualise pas le filtre. Fondamentalement, j'ai besoin d'une vue de la collection d'origine qui, quand une propriété d'un élément dans la vue change, met à jour la source et quand la source change, elle met à jour la vue. Y at-il une classe qui fournit cette fonctionnalité dans Silverlight 3?Silverlight 3 - Filtrage d'une collection observable

Répondre

0

La fonction ObservableCollection avec liaison TwoWay ne fonctionne-t-elle pas? Pouvez-vous élaborer votre exemple avec du code pour montrer le problème plus en détail?

0

Je suggère d'utiliser la bibliothèque Bindable.Linq, elle n'a pas été mise à jour depuis un moment et il y a un bug avec l'opérateur de l'Union. Mais pour les filtres de style linq, cela fonctionne très bien.

Heres un exemple rapide, en supposant que cela est dans le codebehind d'un contrôle utilisateur silverlight avec un peuple nommé listbox:

using Bindable.Linq; 
... 

ObservableCollection<Person> data = new ObserableCollection<Person>{.... fill in}; 
people.ItemsSource = data.AsBindable(Dispatcher).Where(p => p.FirstName.Equals("steve")); 
data.add(new Person("steve")); 

si vous le faites steve devrait apparaître sur la liste. J'ai trouvé cette bibliothèque très utile et si vous téléchargez les exemples de projets à partir de codeplex, il montre des exemples plus avancés.

Espérons que cela aide. Il y a plusieurs autres projets similaires

Questions connexes