2009-01-29 10 views
2

J'ai liste de WPF lié à la collection d'objets. Les objets sont continuellement ajoutés à la collection depuis le serveur distant et sont reflétés dans listview. Maintenant, nous devons être en mesure de geler listview pendant un certain temps, Ce sont des objets qui devraient être ajoutés à la collection, mais ne devraient pas apparaître dans listview tant que nous ne l'aurons pas débloqué (nous avons un bouton pour geler et dégeler). Quelle est la meilleure façon de le faire, quand listview est lié à la collection? Comment libérer la collection et la relier? et est-ce que je peux encore filtrer et trier quand la collection est unbound de listview? En attente de réponse s'il vous plaît répondreLa meilleure façon de se déconnecter wpf listview

Cordialement Sandeep

Répondre

0

Vous devriez juste arrêter la mise à jour de la collection lorsque la liste est gelé, si vous devez continuer à ajouter à la collection, même si la liste est gelé (si la même collection est utilisé ailleurs, qui ne devrait pas être gelé), puis envisager d'avoir deux collections, l'une toujours mise à jour et l'autre liée à la liste.

0

Quel type de liste utilisez-vous comme source de données? Pouvez-vous utiliser BindingList<T>? Si tel est le cas, la propriété RaiseListChangedEvents vous permet de désactiver les notifications. Ce sera probablement très salissant sur vos derniers points, cependant (tri/filtre).

Personnellement, je travaillerais avec 2 listes - la liste liée, et celle que le serveur met à jour. En pause, arrêtez simplement de pomper les données entre les deux. Cela devrait laisser la vue en pause libre pour le tri/filtrage, etc.

1

Vous pouvez simplement rompre la liaison. Dans votre gestionnaire de bouton freeze, dites:

listView = _list 

Qui le gèlera à ce moment-là. Ensuite, dans votre gestionnaire de dégel, remettez la liaison en place:

listView.SetBinding(ListView.ItemsSourceProperty, New Binding("_list")) 

J'espère que cela aidera.

Questions connexes