locked
Command wird über ChildWindow nicht erreicht?! RRS feed

  • Frage

  • Hallo Leute,

    das ist mein erster Beitrag hier und ich bin auch ein SL Newbie, ich bitte also um Rücksicht ;)

    Ich habe aktuell ein SL-Projekt und versuche mich an MVVM, das bisher sehr gut klappt. Ich habe eine Mainpage, die bei Knopfdruck eines Buttons ein ChildWindow aufpoppen lässt. Dies habe ich über das Command-Property in XAML und im ViewModel ordentlich realisiert und das klappt auch soweit. Der nächste Schritt ist dann in diesem Pop-Up ein paar Werte zu befüllen und dann diese Werte in eine Liste zu speichern. Das möchte ich auch über ein Command realisieren, dass beim OK-Button anspringen soll. Ich habe es eigentlich wie beim ersten Command gemacht, doch das Problem ist, dass wenn ich debugge und einen Breakpoint in die Execute-Methode setze, dieser Code nicht erreicht wird.

    Kann mir jemand sagen was ich falsch mache. Wenn ich testweise aus der Mainpage das Command (die darin enthaltene Execute-Methode) erreichen möchte, funktioniert das. Auch geht es nicht, dass funktionierende Command anzusprechen, wenn es im ChildWindow verknüpft ist.

    Ich denke dass ist nur ne Kleinigkeit, aber ich komme nicht dahinter!

    Viele Grüße

    Donnerstag, 20. Mai 2010 11:23

Antworten

  • Sagen, was du falsch machst, kann bestimmt niemand, da deine Lösung nicht bekannt ist.
     
    Ich habe dein Problem mal nachgestellt und kann keine fehlerhafte Arbeit feststellen. Ich habe folgendes gemacht:
     
    1. ViewModel erstellt mit den Eigenschaften "Wert" (Single) und "WerteListe" (ObservableCollection(Of Single)) und den Befehlen "cmdShowChildWindow" und "cmdAddValue".
    2. ViewModel als Ressource der App.xaml hinzugefügt, damit alle Seiten/Fenster auf die gleiche Instanz zugreifen können.
    3. In der Hauptseite eine ListBox an "WerteListe" und einen Button an "cmdShowChildWindow" gebunden.
    4. Im ChildWindow eine TextBox an "Wert" und einen Button an "cmdAddValue" gebunden.
    5. Im Execute von "cmdShowChildWindow" steht nur "Call (New Page09ChildWindow1).Show()".
    6. Im Execute von "cmdAddValue" steht nur "Me.WerteListe.Add(Me.Wert)".
     
    Mit jedem Click auf den Button im ChildWindow wird der in der TextBox eingetragene Wert in die Liste übertragen und auch sofort im abgedunkelten hinteren Fenster angezeigt.

    --
    Viele Gruesse
     
    Peter
     
    Donnerstag, 27. Mai 2010 09:35