Hallo,
ich habe ein kleines Problem:
Ich habe eine
in einem Modul in meinem ViewModel. Diese verwende ich als Source in der CollectionVIewSource.GetDefaultView-Methode:
Nun muss ich, wenn sich
Also meine Frage:
Bietet
In den MS Docs habe ich das gefunden:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.collectionviewsource.onsourcechanged?view=windowsdesktop-6.0
Da wird aber leider kein Beispiel angeführt. Man kann hier als Argument
ich habe ein kleines Problem:
Ich habe eine
Public Property InhaltGesamt As ObservableCollection(Of Model.MP3FileInfo) = New ObservableCollection(Of Model.MP3FileInfo)
in einem Modul in meinem ViewModel. Diese verwende ich als Source in der CollectionVIewSource.GetDefaultView-Methode:
VB.NET-Quellcode
- Public Sub ErstelleDefault()
- _AnzuzeigendeInterpreten = CollectionViewSource.GetDefaultView(MainModule.InhaltGesamt.OrderBy(Function(o) o.Interpret).GroupBy(Function(f) f.Interpret).Select(Function(g) g.First()).ToArray())
- _AnzuzeigendeInterpreten.Filter = AddressOf AnzuzeigendeInterpreten_Filter
- _AnzuzeigendeInterpreten.SortDescriptions.Add(New SortDescription(NameOf(MP3FileInfo.Interpret), ListSortDirection.Ascending))
- End Sub
Nun muss ich, wenn sich
InhaltGesamt
ändert, die View updaten. Mit .Refresh()
ist es nicht getan, das habe ich bereits versucht. OK, ich kann jetzt auch ErstelleDefault()
aufrufen, dies wird aber nicht gehen, weil diese Methode vom aufrufenden ViewModel (einem Dialog) nicht zugreifbar ist.Also meine Frage:
Bietet
CollectionViewSource
eine Eigenschaft oder Methode, die festlegt, dass wenn sich die Source
ändert, automatisch GetDefaultView()
neu aufgerufen wird?In den MS Docs habe ich das gefunden:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.data.collectionviewsource.onsourcechanged?view=windowsdesktop-6.0
Da wird aber leider kein Beispiel angeführt. Man kann hier als Argument
OldSource
und NewSource
übergeben. Kann ich da also einfach, bevor die Änderungen gemacht werden, InhaltGesamt
in einer Variablen zwischenspeichern und dann als OldSource
übergeben, und als NewSource
dann das geänderte InhaltGesamt
?