Hallo miteinander 
Ich hab ein mittelschweres Problem, wo ich nicht sicher weiter weiss:
Und zwar habe ich zwei Arten ViewModels:
Davon gibt es jeweils 5 Instanzen.
In allen hat man die Möglichkeit, das UI von VST-PlugIns zu öffnen in extra Fenstern. Diese Fenster sind vom Typ
Geöffnet bzw. aufgerufen werden diese so:
Nun muss ich beim Schliessen der Fenster für die PlugIns, welches von
In dem Beispiel hier habe ich das so gelöst, aber ich will anstatt dem "festen"
Das Problem ist: Man könnte dieses ja im Konstruktor von
Ich hoffe ich hab das Problem verständlich geschildert und freue mich auf Eure Antworten

Ich hab ein mittelschweres Problem, wo ich nicht sicher weiter weiss:
Und zwar habe ich zwei Arten ViewModels:
SingleEffectRackViewModel
und IntrumentenRackViewModel
Davon gibt es jeweils 5 Instanzen.
In allen hat man die Möglichkeit, das UI von VST-PlugIns zu öffnen in extra Fenstern. Diese Fenster sind vom Typ
PlugInWindow
und haben den DataContext LeeresViewModel
.Geöffnet bzw. aufgerufen werden diese so:
VB.NET-Quellcode
- LeeresVM = New ViewModel.LeeresViewModel(WelcherKanal & "(" & CStr(index + 1) & "): " & vstInfo.effectName, AngewendeteEffekte(index).Handle, AngewendeteEffekte(index), Me) 'hier möchte ich als letztes Argument das aufrufende ViewModel übergeben, dieses kann aber zwei verschiedene Typen haben
- FensterService.OeffnePlugInFenster(WelcherKanal & ": " & vstInfo.effectName, vstInfo.editorHeight + 28, vstInfo.editorWidth, LeeresVM, Me)
Nun muss ich beim Schliessen der Fenster für die PlugIns, welches von
LeeresViewModel
aus geschehen soll, eine Property UIOffen As Boolean
im aufrufenden ViewModel aktualisieren, damit das aufrufende ViewModel weiss, dass das Fenster wieder zu ist:VB.NET-Quellcode
- Private Sub SchliessePlugInFenster_Execute(obj As Object)
- BassVst.BASS_VST_EmbedEditor(EffektKanal, Nothing)
- Dim index As Integer = MainModule.LayerVM.VSTsViewModel.DeckLeftEffects.AngewendeteEffekte.ToList.FindIndex(Function(x) x.ID = Effekt.ID)
- If index <> -1 Then
- MainModule.LayerVM.VSTsViewModel.DeckLeftEffects.AngewendeteEffekte(index).UIOffen = False
- End If
- FensterService.SchliessePlugInFenster(Me, UIHandles)
- End Sub
In dem Beispiel hier habe ich das so gelöst, aber ich will anstatt dem "festen"
MainModule.LayerVM.VSTsViewModel.DeckLeftEffects.AngewendeteEffekte
das übergebene VM hernehmen.Das Problem ist: Man könnte dieses ja im Konstruktor von
LeeresVM
als ByRef
übergeben, aber wie geht es dann weiter? Ich muss ja nicht vom Konstruktor aus darauf zugreifen, sondern von SchliessePlugInFenster_Execute
Es können ja auch zwei Typen VM sein, also InstrumentenRackViewModel
und Single EffectRackViewModel
...Ich hoffe ich hab das Problem verständlich geschildert und freue mich auf Eure Antworten
