2010-07-06 2 views
1

J'ai créé une application prototype avec une Listview liée à un ObservableCollection par programmation à travers sa propriété itemsource. Tout fonctionnait bien jusqu'à il y a un jour quand ListView a cessé de déclencher des événements SelectionChanged après la première fois que l'événement est levé. Par exemple. Sélectionnez une ligne dans l'affichage ListView, l'événement SelectionChanged est levé, l'interface utilisateur sélectionne la première ligne dans la ListView, peu importe ce que vous faites, puis toute tentative de sélection d'une ligne n'a absolument aucun effet sur ListView, que ce soit en termes de sélection de la ligne cliquée , ou d'élever des événements. Jusqu'ici j'ai établi que si je supprime tout le code superflus de la fenêtre, cela ne résout pas le problème. Si je transpose le code dans un nouveau projet, cela ne résout pas le problème. Toutefois, si je ré-implémente manuellement le même code dans un nouveau projet, le problème ne se présente pas, mais le code semble identique à celui de Beyond Compare. J'ai également eu le problème de désactiver partiellement en supprimant toutes les sélections de la liste dans le gestionnaire d'événements SelectionChanged, ce qui semble résoudre le problème, mais signifie que les lignes n'apparaissent jamais comme sélectionnées dans le Listview.WPF ListView ne déclenche pas les événements SelectionChanged après la première fois que l'événement est déclenché

Je suis au bout du compte.

+1

Vous devez en dire plus sur votre cas. Comment peupler le 'ListView'? C'est à dire. si vous définissez 'ItemsSource', quelle est la collection et quel est le type d'éléments dans cette collection? Notez également que 'ItemsControl' a des problèmes en affichant plusieurs instances du même élément ou des éléments égaux entre eux (remplacez-vous' .Equals'?). – repka

Répondre

0

Si vous utilisez des éléments en double avec des types de valeur (inclure également une chaîne de type ref), ce problème peut se produire lors de la comparaison des valeurs. Vous pouvez envelopper votre article dans une classe pour montrer que les articles sont différents. Mais je ne sais pas pourquoi cela a fonctionné dans la nouvelle application que vous avez créée. Peut-être pourriez-vous avoir changé la source d'items.

Questions connexes