/// <summary> /// Helper-Methode zum einfachen Anzeigen des Fensters /// </summary> /// <param name="model">Das ViewModel, welches angezeigt werden soll</param> /// <returns>true, falls der User Ok geklickt hat</returns> public static bool Display(AutoVm model) { // damit wir beim Abbrechen nicht aus Versehen etwas // übernehmen, das wir nicht wollen, arbeiten wir // temporär mit einer Kopie var vm = PoorMansObjectCloner.Clone <AutoVm>(model); var win = new AutoWindow(vm); // wir zeigen das Fenster als Dialogfenster (blockierend!) an if (win.ShowDialog() != true) { // Abbrechen ... Debug.WriteLine("Bearbeitung des Autos abgebrochen"); return(false); } // Ok geklickt... Debug.WriteLine("Bearbeitung des Autos beendet"); // nun wollen wir die geänderten Properties zurück ins // Originalobjekt übernehmen PoorMansObjectCloner.CopyProperties(vm, model); return(true); }
public AutoWindow(AutoVm model) { InitializeComponent(); Model = model; DataContext = Model; }
public AutoWindow(AutoVm model = null) { InitializeComponent(); // falls kein Model übergeben wurde, erstellen wir einfach eines: Model = model ?? new AutoVm(); DataContext = Model; }
public static void Display(AutoVm vm) { var page = new AutoPage(); page.BindingContext = vm; page.Title = vm.Name; App.Current.MainPage.Navigation.PushAsync(page, true); }
public void UpdateAuto(AutoVm vm) { // aus DB laden var dto = AutoClient.GetAuto(new GetAutoRequest() { AutoId = vm.Id }); // properties kopieren dto.Marke = vm.Name; dto.Tagestarif = (int)vm.Tagestarif; dto.AutoKlasse = (AutoKlasse)(int)vm.Autoklasse; // in DB schreiben AutoClient.UpdateAuto(dto, Metadata.Empty); }