Laden...

Gefilterte Objekte ermitteln

Erstellt von ..Heinz.. vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.339 Views
.
..Heinz.. Themenstarter:in
134 Beiträge seit 2009
vor 12 Jahren
Hinweis von talla vor 12 Jahren

Thema nach WPF verschoben, da CollectionViews in PresentationFramework definiert, und damit Teil von WPF sind, auch wenn das Problem eher allgemeinerer Natur ist.

Gefilterte Objekte ermitteln

Hi,

ich filtere eine Collection mit

CollectionViewSource.GetDefaultView(CollectionName).Filter...

Das funktioniert so wie es soll. Ich bekomme in der Oberfläche nur die Datensätze angezeigt, die ich zum Filtern selektiert habe.

Was ich nicht hin bekomme, ist die gefilterten Einträge zu ermitteln. Wenn ich die Collection öffne, stehen dort die Einträge unverändert drin. Und zwar alle Einträge, die vor der Filterung schon vorhanden waren.

Nun meine Frage, wo kann ich die gefilterten Einträge auslesen um mit ihnen weiter zu arbeiten?

Vielen Dank im Voraus 😃

6.862 Beiträge seit 2003
vor 12 Jahren

Hallo,

du bekommst die gefilterten Einträge, wenn du mit foreach die CollectionView durchgehst. Der Enumerator liefert nur die passenden Einträge zurück.

Aber ich seh hier keinen Anwendungsfall für die CollectionView wenn du die gefilterten Items benötigst zur Weiterverarbeitung. Dann ist das nämlich ein Fall die eigentliche Collection zu filtern und nicht nur eine View zu benutzen (die nur eine bestimmte Sicht auf die Ursprungscollection darstellt die nie verändert wird).

Baka wa shinanakya naoranai.

Mein XING Profil.

.
..Heinz.. Themenstarter:in
134 Beiträge seit 2009
vor 12 Jahren

Hi talla,

danke für deine Antwort.

Genau da liegt mein Problem. Ich weiß nicht, wie ich an die (neue) CollectionView heran komme.

Ich habe schon gesucht, aber keine Information dazu gefunden, woher ich die CollectionView bekomme, die nur die gefilterten Objekte beinhaltet.

6.862 Beiträge seit 2003
vor 12 Jahren

Hallo,

wieso rankommen an die CollectionView? Die hast du doch schon, das ist die wo du den Filter setzt.

Baka wa shinanakya naoranai.

Mein XING Profil.

.
..Heinz.. Themenstarter:in
134 Beiträge seit 2009
vor 12 Jahren

Hallo talla,

_collectionView = CollectionViewSource.GetDefaultView(Collection);
_collectionView.Filter =...

Die Collection binde ich an ein DataGrid in meiner View. Das DataGrid wird richtig gefüllt/gefiltert.

Wenn ich nun jedoch die _collectionView mit foreach durchlaufe, bekomme ich alle Einträge geliefert und nicht nur die, die gefiltert im DataGrid stehen.

Ich lese _collectionView erst aus, nachdem ich die Filter-Property gesetzt habe. Bin ich damit auf dem richtigen Weg, oder gibt es eine Liste innerhal der _collectionView, die ich durchlaufen muss?

6.862 Beiträge seit 2003
vor 12 Jahren

Hallo,

genau so tuts bei mir. Einfach mit foreach über die CollectionView (nicht vielleicht fälschlicherweise über die Collection) und es kommen nur die gefilterten Einträge raus.

Baka wa shinanakya naoranai.

Mein XING Profil.

.
..Heinz.. Themenstarter:in
134 Beiträge seit 2009
vor 12 Jahren

Hallo talla,

das wars gewesen...ich habe meine ursprüngliche Collection benutzt.

Dankeschön 😃