private async Task AddOrder() { using (var editorVm = GetViewModel <OrderEditorViewModel>()) using (var editorDialogVm = editorVm.Wrap <IEditorWrapperViewModel>()) { var orderModel = new OrderModel { Id = Guid.NewGuid(), CreationDate = DateTime.Now }; editorVm.InitializeEntity(orderModel, true); if (!await editorDialogVm.ShowAsync()) { return; } //NOTE: wait for load data, in case the view model has been restored. await _initializedTask; _trackingCollection.UpdateStates(editorVm.ApplyChanges()); orderModel = editorVm.Entity; GridViewModel.OriginalItemsSource.Add(orderModel); GridViewModel.SelectedItem = orderModel; this.OnPropertyChanged(() => v => v.HasChanges); } }
private async Task AddProduct() { using (var editorVm = GetViewModel <ProductEditorViewModel>()) using (var editorWrapperViewModel = editorVm.Wrap <IEditorWrapperViewModel>()) { var productModel = new ProductModel { Id = Guid.NewGuid() }; editorVm.InitializeEntity(productModel, true); if (!await editorWrapperViewModel.ShowAsync()) { return; } //NOTE: wait for load data, in case the view model has been restored. await _initializedTask; _trackingCollection.UpdateStates(editorVm.ApplyChanges()); productModel = editorVm.Entity; GridViewModel.OriginalItemsSource.Add(productModel); GridViewModel.SelectedItem = productModel; this.OnPropertyChanged(() => v => v.HasChanges); } }