MVVM: Wie teilt man dem MainViewModel die UserControl-Auswahl mit?

  • VB.NET
  • .NET 7–8

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Amro.

    Ich bin gerade nicht am Pc aber ich schau mir das an sobal ich kann.

    VaporiZed schrieb:

    Allerdings merk ich grad, dass ich im MainVM gar keine ObservableCollection(Of ItemViewModel) brauche, sondern dass eine ObservableCollection(Of Object) reicht. So kann ich im DLP auf die Events der ObservableCollection reagieren und das DLP entsprechend modifizieren.


    Du kommst der Sache schon näher.
    Jetzt schaumal ob du das Object durch ein eignes Model ersetzten kannst.
    Also eine klasse die alle Eigenschaften hat welche dein DataListPanelItem benötigt.
    Zum Beispiel das ItemVieModel als Eigenschaft.




    Ich hab mir das ganze angeschaut. Kann leider nicht viel damit anfangen.
    Kann dein DLP nicht in eine Form verwenden.Sehe nix in der Toobox.
    Das projekt läst sich nicht starten , kann auch nicht debuggen.
    Ist auch total anders wie ich es von WPF kenne.
    Sorry ich glaub ich kann da nicht helfen ohne mich da länger mit befassen zu müssen.
    Bekomme auch folgenden Fehler beim Starten

    Schweregrad Code Beschreibung Projekt Datei Zeile Unterdrückungszustand
    Fehler MSB3821 Die Datei "UI\UcMain\UcMain.resx" konnte nicht verarbeitet werden, weil sie sich im Internet oder in der Zone eingeschränkter Websites befindet oder die Webmarkierung aufweist. Entfernen Sie die Webmarkierung, wenn Sie diese Dateien verarbeiten möchten. TestprojektMVVM C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets 3345

    Da fehlt warscheinlich ein Package

    Beiträge zusammengefasst ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Wo befindest Du Dich gedanklich? Im DLP? Wenn es pur-View ist, warum soll es jetzt VM-Eigenschaften haben? Ich glaub, ich kann Dir grad nicht durch den dunklen Wald folgen ?(

    ##########

    Ah, der Klassiker aus dem Internet, den ich immer wieder habe und mir schon ein eigenes Programm dafür gebaut habe. Alle Dateien, die ich runterlade, enthalten die Internetmarkierung. Diese Markierung muss ich oft löschen, damit ich weitermachen kann. Manuell: Im Dateiexplorer Rechtsklick auf die Resx -> Eigenschaften -> unten rechts [X] Zulassen

    @Amro: Siehe hier: ResX-Datei aus dem Internet programmatisch "zulassen"

    ##########

    @Amro: Hab gesehen, dass es ja 2 Posts sind, ich werd das dann mal zusammenfassen.
    Bzgl. DLP und Designer: Da das DLP einen generischen Parameter hat und deshalb nicht direkt verwendet werden kann, muss es einfach (also: nicht mehrfach) beerbt werden:

    VB.NET-Quellcode

    1. Friend Class DataListPanel : Inherits DataListPanel(Of UcAccessPoint)
    2. End Class
    Dann taucht es im Designer auf.

    Dann besprechen wir es theoretisch weiter: Was wär Dein nächster Gedankengang? Das DLP zu isolieren, um es in anderen Proekten nutzen zu können? Welches ViewModel sollte jetzt erschaffen werden? Was soll es können?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

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

    VaporiZed schrieb:

    Welches ViewModel sollte jetzt erschaffen werden?


    Du hast den Code ja in dein DLP im CodeBehind. Mit ViewModel meinte ich diese Daten.
    Das kannst du aber so lassen denk ich.

    VaporiZed schrieb:

    Was soll es können?


    Was hast du denn Vor mit den DLP Panel ? Bisher haben wir versucht das ganze lediglich Bindable zu machen MVVM Komform. Oder nicht?

    VaporiZed schrieb:

    Das DLP zu isolieren, um es in anderen Proekten nutzen zu können


    Ich denke schon weil du warscheinlich noch mehr Controls brauchen wirst.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Amro“ ()

    Ah :), ich glaub jetzt seh ich, wo unsere Gedanken andere Wege gehen. Mein Plan war bisher nicht, das DLP MVVM-gerecht zu designen, sondern - wie der Threadtitel sagt - das SelectedItem des DLP MVVM-gerecht dem MainViewModel mitzuteilen.
    Gut, das DLP MVVM-gerecht zu gestalten kann ich mir ja jetzt als neue Aufgabe setzen, nachdem die eigentliche Aufgabe gelöst ist.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.