Hallo Community,
ich hab ein kleines Problem, und zwar:
Ich habe eine ObservableCollection
Und dann das Event abonniert:
... in dieser Sub:
Mein Ziel ist es, mit
Und dann komplett alle, die nach der Änderung vorhanden sind, nochmal mit
Aber da scheine ich einen Denkfehler drin zu haben, bzw. interpretiere da die MS Docs falsch. Da heisst es:
OldItems: The list of items affected by a Replace, Remove, or Move action.
NewItems: The list of new items involved in the change.
Wobei mir grad auffällt, klar:
Aber wie komm ich dann nach dem Aufruf von
Edit: Hat sich erledigt, so hat es geklappt. Wenn jemand aber noch einen besseren Vorschlag hat, gerne posten.
ich hab ein kleines Problem, und zwar:
Ich habe eine ObservableCollection
AngewendeteEffekte
Und dann das Event abonniert:
AddHandler AngewendeteEffekte.CollectionChanged, AddressOf InitilaisiereVSTEffekte
... in dieser Sub:
VB.NET-Quellcode
- Private Sub InitilaisiereVSTEffekte(sender As Object, e As NotifyCollectionChangedEventArgs)
- If e.OldItems IsNot Nothing Then
- Dim AlteItems As New List(Of ViewModel.PlugInsViewModel)
- AlteItems = e.OldItems.Cast(Of ViewModel.PlugInsViewModel).ToList()
- For Each item In AlteItems
- BassVst.BASS_VST_ChannelRemoveDSP(sourcechannel, item.Handle)
- Next
- End If
- For i = AngewendeteEffekte.Count - 1 To 0 Step -1
- AngewendeteEffekte(i).Handle = BassVst.BASS_VST_ChannelSetDSP(sourcechannel, AngewendeteEffekte(i).Pfad, 0, AngewendeteEffekte.Count - i)
- Next
- End Sub
Mein Ziel ist es, mit
BassVst.BASS_VST_ChannelRemoveDSP
alle Effekte, die vor dem Aufrufen der Sub Bestandteil der ObservableCollection waren, zu "removen".Und dann komplett alle, die nach der Änderung vorhanden sind, nochmal mit
BassVst.BASS_VST_ChannelSetDSP
zu initialisieren.Aber da scheine ich einen Denkfehler drin zu haben, bzw. interpretiere da die MS Docs falsch. Da heisst es:
OldItems: The list of items affected by a Replace, Remove, or Move action.
NewItems: The list of new items involved in the change.
Wobei mir grad auffällt, klar:
.OldItems
gibt nicht alle "alten" zurück, sondern nur die "betroffenen".Aber wie komm ich dann nach dem Aufruf von
.CollectionChanged
an die Items dran, die davor in der OC waren? Würdet ihr da eine Kopie von AngewendeteEffekte
anlegen, die erst verändert wird, wenn InitialisiereVSTEffekte()
durchlaufen ist und dann bei erneutem Aufruf dann diese durchiteriere mit BassVst.BASS_VST_ChannelRemoveDSP
?Edit: Hat sich erledigt, so hat es geklappt. Wenn jemand aber noch einen besseren Vorschlag hat, gerne posten.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()