Example #1
0
        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);
                }
        }