CollectionViewSource MVVM-Implementierung für WPF DataGrid

7

Ich habe eine kleine Demo von CollectionViewSource für WPF DataGrid in MVVM implementiert. Ich würde wirklich jede Hilfe schätzen, um die Implementierung zu überprüfen und zu kommentieren, ob dies der richtige Ansatz für die Verwendung von CollectionViewSource ist.

%Vor%

Die XAML-Ansicht:

%Vor%

Der Code dahinter:

%Vor%

Der Hyperlink_Click-Handler ruft die UpdateDataGrid-Methode der VM auf, die durch Komma getrennte Film-IDs übergibt, die dann zum Filtern der MovieList-Sammlung mithilfe von Erweiterungsmethoden verwendet werden.

    
Lucifer 26.09.2012, 10:11
quelle

3 Antworten

17

Sie sollten keine neuen Instanzen der beobachtbaren Sammlung und der Sammlungsansicht erstellen. Weisen Sie der Filtereigenschaft in der Sammlungsansicht ein Prädikat zu und rufen Sie jedes Mal auf, wenn Sie die Sammlung filtern möchten.

%Vor%     
Per 26.09.2012, 10:27
quelle
2

Hier finden Sie ein Beispiel für die Instantiierung einer CollectionViewSource, um die Mehrfachfilterung in einem DataGrid zu ermöglichen: Ссылка

Die CollectionViewSource wurde in der XAML-Ansicht instanziiert, ist jedoch an eine Sammlung von Objekten gebunden, die im Ansichtsmodell instanziiert wurden. Das Ansichtsmodell verwendet dann die CollectionViewSource, um die Daten im DataGrid zu filtern.

Was ist der richtige Ansatz, um eine CollectionViewSource instanziieren - das ist fraglich.

    
BgRva 28.09.2012 14:10
quelle
0

Sie können das Hinzufügen von Ressourcen überspringen, indem Sie dies direkt tun: DataContext = new TagViewModel(); und Ihre Bindungen normal machen. aber ich empfehle Dependency Injection.

    
HichemSeeSharp 26.09.2012 10:17
quelle