Ich nehme an, Sie folgen einem ähnlichen Ansatz wie dieses MSDN-Beispiel. Falls ja, erfolgt die Sortierung basierend auf den SortDescriptions der Auflistungssicht. Solange die Quellensammlung beobachtbar ist, sollte die Sortierreihenfolge eingehalten werden, wenn Elemente hinzugefügt oder entfernt werden.
Das eigentliche Problem tritt auf, wenn ein Element nach dem Hinzufügen zur Sammlung geändert wird. In diesem Fall wird die Sortierung der Sammlung nicht automatisch neu vorgenommen.
Ich erkläre das Problem ausführlich in 'E' steht für Editierbare Sammlung (in meiner ItemsControl A bis Z Serie). Außerdem stelle ich einige Workarounds vor, die verschiedene Leistungsstufen bieten. Der drastischste ist, eine erneute Sortierung der gesamten Sammlung zu erzwingen, indem Refresh() auf der CollectionView aufgerufen wird. Wenn möglich, würde ich das vermeiden und eine bessere Option verwenden, wie z.B. das Implementieren von IEditableObject auf Ihren Elementen und das Ausführen von Edit() gefolgt von Commit(), wenn sich die Eigenschaften eines Elements ändern.
0 Stimmen
Können Sie uns den Code zeigen, den Sie für das Sortieren verwenden, wenn die Daten eintreffen?
0 Stimmen
@Tony - Nun, der Code ist zu umfangreich, um hier gepostet zu werden. Aber das Problem scheint bei einem beliebigen sortierbaren Listview-Beispiel im Netz zu liegen.
1 Stimmen
Wir können wirklich nicht helfen, es sei denn, wir wissen, wie Sie den
ListView
bevölkern. Fügen Sie Elemente zu einerObservableCollection
hinzu, die derListView
als Quelle verwendet? Fügen Sie die Elemente auf andere Weise zumListView
hinzu?