Ejemplo n.º 1
0
        public ListViewModel()
        {
            this.NeuePersonCmd = new UserCommand
                                 (
                para =>
            {
                return(true);
            },
                para =>
            {
                Views.DetailView detailV = new Views.DetailView();
                detailV.DataContext      = new DetailViewModel();

                if (detailV.ShowDialog() == true)
                {
                    Models.Person.PersonenListe.Add((detailV.DataContext as DetailViewModel).aktuellePerson);
                }
            }
                                 );
            this.ÄnderePersonCmd = new UserCommand
                                   (
                p => p is Models.Person,
                p =>
            {
                Views.DetailView detailV = new Views.DetailView();
                detailV.DataContext      = new DetailViewModel();
                (detailV.DataContext as DetailViewModel).aktuellePerson = new Models.Person(p as Models.Person);

                if (detailV.ShowDialog() == true)
                {
                    Models.Person.PersonenListe[Models.Person.PersonenListe.IndexOf(p as Models.Person)] = (detailV.DataContext as DetailViewModel).aktuellePerson;
                }
            }
                                   );
            this.LöschePersonCmd = new UserCommand
                                   (
                p => p is Models.Person,
                p => Models.Person.PersonenListe.Remove(p as Models.Person)
                                   );
            this.SchließeAppCmd = new UserCommand
                                  (
                p => true,
                p => Application.Current.Shutdown()
                                  );
        }
Ejemplo n.º 2
0
        public ListViewModel()
        {
            //Command-Definitionen

            //Löschen einer Person
            this.LoeschenCmd = new CustomCommand
                               (
                //CanExe: s.u.
                p => p is Model.Person,

                //Exe:
                p =>
            {
                //Anzeige einer MessageBox, ob Löschvorgang wirklich gewollt ist
                if (MessageBox.Show($"Soll {(p as Model.Person).Vorname} {(p as Model.Person).Nachname} wirklich gelöcht werden?", "Person löschen", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    //Löschen der ausgewählten Person
                    Model.Person.Personenliste.Remove(p as Model.Person);
                }
            }
                               );

            //Ändern einer bestehenden Person
            this.AendernCmd = new CustomCommand
                              (
                //CanExe: Kann ausgeführt werden, wenn der Parameter (der im DataGrid ausgewählte Eintrag) eine Person ist.
                //Fungiert als Null-Prüfung
                p => p is Model.Person,

                //Exe:
                p =>
            {
                //Instanzieren eines neuen DetailViews
                Views.DetailView neuePersonDialog = new Views.DetailView();
                //Zuweisung eines neuen DetailViewModels als dessen DataContext
                //sowie Zuweisung einer Kopie der ausgewählten Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                neuePersonDialog.DataContext = new DetailViewModel()
                {
                    AktuellePerson = new Model.Person(p as Model.Person)
                };

                //Ändern des Titels des neuen DetailViews
                (neuePersonDialog as Views.DetailView).Title = "Ändere " + (p as Model.Person).Vorname + " " + (p as Model.Person).Nachname;

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult (wird true, wenn der Benutzer OK klickt)
                if (neuePersonDialog.ShowDialog() == true)
                {
                    //Austausch der (veränderten) Person-Kopie mit dem Original in der Liste
                    Model.Person.Personenliste[Model.Person.Personenliste.IndexOf(p as Model.Person)] = (neuePersonDialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                              );

            //Hinzufügen einer neuen Person
            this.NeuCmd = new CustomCommand
                          (
                //CanExe: kann immer ausgeführt werden
                p => true,

                //Exe:
                p =>
            {
                //Instanzieren eines neuen DetailViews
                Views.DetailView neuePersonDialog = new Views.DetailView();
                //Zuweisung eines neuen DetailViewModels als dessen DataContext
                //sowie Zuweisung einer neuen Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                neuePersonDialog.DataContext = new DetailViewModel()
                {
                    AktuellePerson = new Model.Person()
                };

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult (wird true, wenn der Benutzer OK klickt)
                if (neuePersonDialog.ShowDialog() == true)
                {
                    //Hinzufügen der neuen Person zu Liste
                    Model.Person.Personenliste.Add((neuePersonDialog.DataContext as DetailViewModel).AktuellePerson);
                }
            }
                          );
        }
Ejemplo n.º 3
0
        public ListViewModel()
        {
            //Command-Definitionen
            //Hinzufügen einer neuen Person
            NeuCmd = new CustomCommand
                     (
                //CanExe: kann immer ausgeführt werden
                para => true,
                //Exe:
                para =>
            {
                //Instanzieren eines neuen DetailViews
                Views.DetailView neuePersonDialog = new Views.DetailView();
                //Zuweisung eines neuen DetailViewModels als dessen DataContext
                neuePersonDialog.DataContext = new DetailViewModel();
                //Zuweisung einer neuen Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (neuePersonDialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person();

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult (wird true, wenn der Benutzer OK klickt)
                if (neuePersonDialog.ShowDialog() == true)
                {
                    //Hinzufügen der neuen Person zu Liste
                    Model.Person.Personenliste.Add((neuePersonDialog.DataContext as DetailViewModel).AktuellePerson);
                }
            }
                     );
            //Ändern einer bestehenden Person
            AendernCmd = new CustomCommand
                         (
                //CanExe: Kann ausgeführt werden, wenn der Parameter (der im DataGrid ausgewählte Eintrag) eine Person ist.
                //Fungiert als Null-Prüfung
                para => para is Model.Person,
                //Exe:
                para =>
            {
                //Vgl. NeuCmd (s.o.)
                Views.DetailView personDialog = new Views.DetailView();
                personDialog.DataContext      = new DetailViewModel();
                //Zuweisung einer Kopie der ausgewählten Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (personDialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person(para as Model.Person);
                //Ändern des Titels des neuen DetailViews
                (personDialog as Views.DetailView).Title = "Ändere " + (para as Model.Person).Vorname + " " + (para as Model.Person).Nachname;

                if (personDialog.ShowDialog() == true)
                {
                    //Austausch der (veränderten) Person-Kopie mit dem Original in der Liste
                    Model.Person.Personenliste[Model.Person.Personenliste.IndexOf(para as Model.Person)] = (personDialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                         );
            //Löschen einer Person
            LoeschenCmd = new CustomCommand(CanExeLoeschen, ExeLoeschen);
            //Schließen des Programms
            SchliessenCmd = new CustomCommand
                            (
                //CanExe: kann immer ausgeführt werden
                para => true,
                //Exe: Schließen der Applikation
                para => Application.Current.Shutdown()
                            );
        }