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); } } ); }
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() ); }
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() ); }
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() ); }