public ListViewModel()
        {
            this.SchließenCmd = new UserCommand
                                (
                p => true,
                p => Application.Current.Shutdown()
                                );

            this.NeuCmd = new UserCommand
                          (
                p => true,
                p =>
            {
                View.DetailView neuePersonDialog = new View.DetailView();
                neuePersonDialog.DataContext     = new ViewModel.DetailViewModel();
                (neuePersonDialog.DataContext as ViewModel.DetailViewModel).AktuellePerson = new Model.Person();

                if (neuePersonDialog.ShowDialog() == true)
                {
                    Model.Person.PersonenListe.Add((neuePersonDialog.DataContext as ViewModel.DetailViewModel).AktuellePerson);
                }
            }
                          );
            this.ÄndernCmd = new UserCommand
                             (
                p => p is Model.Person,
                p =>
            {
                View.DetailView neuePersonDialog = new View.DetailView();
                neuePersonDialog.DataContext     = new ViewModel.DetailViewModel();
                (neuePersonDialog.DataContext as ViewModel.DetailViewModel).AktuellePerson = new Model.Person(p as Model.Person);
                (neuePersonDialog as View.DetailView).Title = "Ändere " + (p as Model.Person).Vorname + " " + (p as Model.Person).Nachname;

                if (neuePersonDialog.ShowDialog() == true)
                {
                    Model.Person.PersonenListe[Model.Person.PersonenListe.IndexOf(p as Model.Person)] = (neuePersonDialog.DataContext as ViewModel.DetailViewModel).AktuellePerson;
                }
            }
                             );
            this.LöschenCmd = new UserCommand
                              (
                p => p is Model.Person,
                p =>
            {
                if (MessageBox.Show($"Soll {(p as Model.Person).Vorname} {(p as Model.Person).Nachname} wirklich gelöscht werden?", "Person löschen?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    Model.Person.PersonenListe.Remove(p as Model.Person);
                }
            }
                              );
        }
        public ListViewModel()
        {
            this.SchließenCmd = new UserCommand
                                (
                p => true,
                p => Application.Current.Shutdown()
                                );
            this.LöschenCmd = new UserCommand
                              (
                p => p is Model.Person,
                p => Model.Person.PersonenListe.Remove(p as Model.Person)
                              );
            this.ÄndernCmd = new UserCommand
                             (
                p => p is Model.Person,
                p =>
            {
                View.DetailView neuePersonDialog = new View.DetailView();
                neuePersonDialog.DataContext     = new DetailViewModel();
                (neuePersonDialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person(p as Model.Person);

                //Aufruf des Dialogfensters und Überprüfung des DialogResults (Hat der Benutzer auf OK geklickt?)
                if (neuePersonDialog.ShowDialog() == true)
                {
                    Model.Person.PersonenListe[Model.Person.PersonenListe.IndexOf(p as Model.Person)] = (neuePersonDialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                             );
            this.NeuCmd = new UserCommand
                          (
                p => true,
                p =>
            {
                View.DetailView neuePersonDialog = new View.DetailView();
                neuePersonDialog.DataContext     = new DetailViewModel();

                if (neuePersonDialog.ShowDialog() == true)
                {
                    Model.Person.PersonenListe.Add((neuePersonDialog.DataContext as DetailViewModel).AktuellePerson);
                }
            }
                          );
        }
Пример #3
0
        public ListViewModel()
        {
            //Command-Definitionen
            //Hinzufügen einer neuen Person
            this.NeuCmd = new CustomCommand
                          (
                //CanExe: kann immer ausgeführt werden
                para => true,
                //Exe:
                para =>
            {
                //Instanzieren eines neuen DetailViews
                View.DetailView neuePersonenDialog = new View.DetailView();
                //Zuweisung eines neuen DetailViewModels als dessen DataContext
                neuePersonenDialog.DataContext = new DetailViewModel();
                //Zuweisung einer neuen Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (neuePersonenDialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person();

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult (wird true, wenn der Benutzer OK klickt)
                if (neuePersonenDialog.ShowDialog() == true)
                {
                    //Hinzufügen der neuen Person zu Liste
                    Model.Person.Personenliste.Add((neuePersonenDialog.DataContext as DetailViewModel).AktuellePerson);
                }
            }
                          );
            //Ä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
                para => para is Model.Person,
                //Exe:
                para =>
            {
                //Vgl. NeuCmd (s.o.)
                View.DetailView neuePersonenDialog = new View.DetailView();
                neuePersonenDialog.DataContext     = new DetailViewModel();
                //Zuweisung einer Kopie der ausgewählten Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (neuePersonenDialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person(para as Model.Person);
                //Ändern des Titels des neuen DetailViews
                (neuePersonenDialog as View.DetailView).Title = "Ändere " + (para as Model.Person).Vorname + " " + (para as Model.Person).Nachname;

                if (neuePersonenDialog.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)] = (neuePersonenDialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                              );
            //Löschen einer Person
            this.LoeschenCmd = new CustomCommand
                               (
                //CanExe: s.o.
                para => para is Model.Person,
                //Exe:
                para =>
            {
                //Anzeige einer MessageBox, ob Löschvorgang wirklich gewollt ist
                if (MessageBox.Show($"Soll {(para as Model.Person).Vorname} {(para 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(para as Model.Person);
                }
            }
                               );
            //SChließen des Programms
            this.SchliessenCmd = new CustomCommand
                                 (
                //CanExe: kann immer ausgeführt werden
                para => true,
                //Exe: Schließen der Applikation
                para => Application.Current.Shutdown()
                                 );
        }
Пример #4
0
        public ListViewModel()
        {
            //Command-Definitionen
            //Hinzufügen einer neuen Person
            this.NeuCmd = new CustomCommand
                          (
                //CanExe: kann immer ausgeführt werden
                p => true,
                //Exe:
                p =>
            {
                //Instanzieren eines neuen DetailViews
                View.DetailView NeuePerson_Dialog = new View.DetailView();
                //Zuweisung eines neuen DetailViewModels als dessen DataContext
                NeuePerson_Dialog.DataContext = new DetailViewModel();
                //Zuweisung einer neuen Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (NeuePerson_Dialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person();

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult(wird true, wenn der Benutzer OK klickt)
                if (NeuePerson_Dialog.ShowDialog() == true)
                {
                    //Hinzufügen der neuen Person zu Liste
                    Model.Person.Personenliste.Add((NeuePerson_Dialog.DataContext as DetailViewModel).AktuellePerson);
                }
            }
                          );

            //Ä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 =>
            {
                //Vgl. NeuCmd (s.o.)
                View.DetailView NeuePerson_Dialog = new View.DetailView();
                NeuePerson_Dialog.DataContext     = new DetailViewModel();
                //Zuweisung einer Kopie der ausgewählten Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                (NeuePerson_Dialog.DataContext as DetailViewModel).AktuellePerson = new Model.Person(p as Model.Person);
                //Ändern des Titels des neuen DetailViews
                (NeuePerson_Dialog as View.DetailView).Title = "Ändere " + (p as Model.Person).Vorname + " " + (p as Model.Person).Nachname;

                if (NeuePerson_Dialog.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)] = (NeuePerson_Dialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                              );

            //Löschen einer Person
            this.LoeschenCmd = new CustomCommand
                               (
                //CanExe: s.o.
                p => p is Model.Person,
                //Exe: Löschen der ausgewählten Person
                p => Model.Person.Personenliste.Remove(p as Model.Person)
                               );

            //Schließen des Programms
            this.BeendenCmd = new CustomCommand
                              (
                //CanExe: kann immer ausgeführt werden
                p => true,
                //Exe: Schließen der Applikation
                p => (p as View.ListView).Close()
                              );
        }
Пример #5
0
        public ListViewModel()
        {
            //Command-Definitionen
            //Hinzufügen einer neuen Person
            NeuCmd = new CustomCommand
                     (
                //CanExe: kann immer ausgeführt werden
                p => true,
                //Exe:
                p =>
            {
                //Instanzieren eines neuen DetailViews
                View.DetailView NeuePerson_Dialog = new View.DetailView();

                //(NeuePerson_Dialog.DataContext as DetailViewModel).AktuellePerson = new Person();

                //Erstellung eines neuen DetailViewModels als dessen DataContext
                DetailViewModel detailViewModel = new DetailViewModel();
                //Zuweisung einer neuen Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                detailViewModel.AktuellePerson = new Person();
                //Zuweisung des ViewModels als DataContext für das View
                NeuePerson_Dialog.DataContext = detailViewModel;

                //Aufruf des DetailViews mit Überprüfung auf dessen DialogResult(wird true, wenn der Benutzer OK klickt)
                if (NeuePerson_Dialog.ShowDialog() == true)
                {
                    //Hinzufügen der neuen Person zu Liste
                    Model.Person.Personenliste.Add((NeuePerson_Dialog.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
                p => p is Model.Person,
                p =>
            {
                //Vgl. NeuCmd (s.o.)
                View.DetailView AenderePerson_Dialog = new View.DetailView();
                //Ändern des Titels des neuen DetailViews
                (AenderePerson_Dialog as View.DetailView).Title = "Ändere " + (p as Model.Person).Vorname + " " + (p as Model.Person).Nachname;

                DetailViewModel detailViewModel = new DetailViewModel();
                //Zuweisung einer Kopie der ausgewählten Person in die 'AktuellePerson'-Property des neuen DetailViewModels
                detailViewModel.AktuellePerson = new Person(p as Person);

                AenderePerson_Dialog.DataContext = detailViewModel;

                if (AenderePerson_Dialog.ShowDialog() == true)
                {
                    //Austausch der (veränderten) Person-Kopie mit dem Original in der Liste
                    Model.Person.Personenliste[Model.Person.Personenliste.IndexOf(p as Person)] = (AenderePerson_Dialog.DataContext as DetailViewModel).AktuellePerson;
                }
            }
                         );

            //Löschen einer Person
            LoeschenCmd = new CustomCommand
                          (
                //CanExe: s.o.
                p => p is Model.Person,
                //Exe: Löschen der ausgewählten Person (nach Rückfrage per MessageBox)
                p =>
            {
                if (MessageBox.Show($"Soll {(p as Person).Vorname} {(p as Person).Nachname} wirklich gelöscht werden?", "Person löschen", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    Model.Person.Personenliste.Remove(p as Person);
                }
            }
                          );

            //Schließen des Programms
            SchliessenCmd = new CustomCommand
                            (
                //CanExe: kann immer ausgeführt werden
                p => true,
                //Exe: Schließen der Applikation
                p => (p as Window).Close()
                            );
        }