Von einem Service auf ViewModel zugreifen

  • WPF MVVM
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von kafffee.

    Von einem Service auf ViewModel zugreifen

    Hi allerseits,

    ich bin beim Debuggen auf ein kleines Problem gestossen, und zwar musste ich so einiges umstellen und müsste noch mehr umstellen (Bindings ändern etc.) wenn ich es nicht schaffe, von einem Service (wie von @Nofear23m hier beschrieben) auf mein ViewModel zuzugreifen. Oder ist so ein Service definitiv eine Einbahnstrasse und ich muss in den sauren Apfel beissen?

    Bin gespannt auf Eure Antworten.
    Du hast ja bereits einen Service mit einer Instanz von einem Fenster. Der DataContext von dem Fenster ist doch das ViewModel(bzw. eine Instanz vom ViewModel). Du kannst also im FensterService-Interface eine Funktion rein bauen, mit der du dir den DataContext vom Fenster hohlen kannst. Musst du dann von Object zu deiner DeineViewModelKlasse casten.
    Zitat von mir 2023:
    Was interessiert mich Rechtschreibung? Der Compiler wird meckern wenn nötig :D
    @DTF

    Wouu bei mir brennt grad echt die Bude. Habs bei mir zwar nicht ganz so gemacht wie du geschrieben hast aber ging nicht anders, meine Architektur ist etwas komplexer, ich hab mehere Registerkarten in meinem MainWindow. Jedenfalls erstmal hinbekommen. Jetzt hab ich bei mir eine Registerkarte, die mir jeweils Listboxen alle meine Interpreten, Alben Musktitel usw anzeigen. Bloss bleiben diese aus irgendeinem Grund leer... Vielleicht ein Threading-Problem oder wird die falsche Instanz angezeigt?

    Daher: Gibt es eine Möglichkeit sich anzeigen zu lassen wie viele Instanzen eines ViewModels es gibt? Weil wenn ich einen Haltepunkt setze, und überprüfe, dann sind die CollectionViews, an die meine Listboxen gebunden sind, schön befüllt...

    Edit: Für den, den es interessiert:
    Ich habe ein LayerViewModel, in der alle meine Instanzen der Registerkarten-ViewModels erzeugt und zentral verwaltet werden, so dass diese auch untereinander kommunizieren können. Da hab ich einfach die Instanz genommen und dann an meinen "Hauptservice" MainModule übergeben, so dass ich jederzeit von überall auf die Instanz zugreifen kann...:

    VB.NET-Quellcode

    1. Suche = New ViewModel.SucheViewModel(Me)
    2. MainModule.SucheVM = Suche


    Für das Problem mit meinen leer bleibenden ListBoxen mach ich dann denke ich einen separaten Thread auf...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „kafffee“ ()