none
Wie Fenster mit Button schließen (MVVM Light)? RRS feed

  • Frage

  • Hallo,
    ich setze das MVVM Light ein.
    Über einen Button öffne ich ein weiteres Fenster.

    MainView.xaml:
    <ribbon: RibbonButton Command="{Binding NewWindow}" />


    MainViewModel.cs:
    public RelayCommand NewWindow
    {
      get
      {
        return _newWindow
          ?? (_newWindow = new RelayCommand(
                         () =>
                         {
                           NewWin();
                         }));
      }
    }

    private void NewWin()
    {
       using (var testView = new TestView())
       {
          testView.ShowDialog();
       }
    }

    Funktioniert alles bestens.
    Jetzt habe ich auf der TestView() einen Button Schließen.
    Wie kann ich TestView() mit dem Pattern MVVM Light schließen?

    TestView.xaml:
    <Button Content="Schließen" Command="{Binding Path=CloseCommand}" />

    TestViewModel.cs:
    public RelayCommand CloseCommand
    {
      get
      {
        return _closeCommand
          ?? (_closeCommand = new RelayCommand(
                            () =>
                            {
                              CloseTestView();
                            }));
      }
    }

    private void CloseTestView()
    {
       // ????? Wie habe ich hier Zugriff auf die TestView() für TestView.Close ?????

    }

     

    Alexander

    Dienstag, 4. Dezember 2012 15:59

Antworten

  • Vielleicht habe ich deine Frage auch etwas falsch verstanden. Wenn du TestView durch einen klick auf einen Button, der in TestView ist,  schließen willst, brauchst du nur this.Close aus der Methode CloseTestView aufzurufen, dann wird das Fenster geschlossen.

    Es würde in diesem Fall auch

    public RelayCommand CloseCommand
    {
      get
      {
        return _closeCommand
          ?? (_closeCommand = new RelayCommand(
                            () =>
                            {
                              Close();
                            }));
      }
    }
    reichen.


    Koopakiller [kuːpakɪllɐ] - http://koopakiller.ko.ohost.de/

    Dienstag, 4. Dezember 2012 17:02
    Moderator

Alle Antworten