示例#1
0
 protected override void CancelEditing()
 {
     if (editableObject != null)
     {
         editableObject.CancelEdit();
     }
     else if (Equals(_oldObject, default(TDetailViewModel)))
     {
         Object = default(TDetailViewModel);
         HandleListViewRowChanged(_lastRowID);
     }
     else
     {
         if (_oldObject.ID == _lastRowID)
         {
             Object = _oldObject;
         }
         else
         {
             Object = default(TDetailViewModel);
             HandleListViewRowChanged(_lastRowID);
         }
     }
     _oldObject     = default(TDetailViewModel);
     editableObject = null;
     EditMode       = EditMode.ReadOnly;
 }
 public ContentPageViewModel()
 {
     Contact = new EditableAdapter <Contact>(new Contact {
         Name = "Rich", Irrelevant = 49, Sensible = false
     });
     OkCommand     = new DelegateCommand(EndEdit);
     CancelCommand = new DelegateCommand(() => Contact.CancelEdit());
 }
示例#3
0
        protected override void Save()
        {
            if (!Validate())
            {
                return;
            }
            IsObjectLoading = true;
            if (Object.ID == 0)
            {
                IObservable <T> addObs = Observable.FromAsync(() => Service.Add(Mapper.Map <TDetailViewModel, T>(Object)));

                addObs.Select((o) => Mapper.Map <TDetailViewModel>(o)).Subscribe((res) => {
                    Object = res;
                    OnAdd();
                    EditMode        = EditMode.ReadOnly;
                    IsObjectLoading = false;
                }, (e) => {
                    ShowMessageBox("Error occured while adding data.", "Error", System.Windows.MessageBoxButton.OK);
                    IsObjectLoading = false;
                });
            }
            else
            {
                IObservable <T> updateObs = Observable.FromAsync(() => Service.Update(Mapper.Map <TDetailViewModel, T>(Object)));
                updateObs.Subscribe((res) => {
                    editableObject.EndEdit();
                    editableObject = null;
                    Object         = Mapper.Map <TDetailViewModel>(res);
                    OnSave();
                    EditMode        = EditMode.ReadOnly;
                    IsObjectLoading = false;
                }, (e) => {
                    ShowMessageBox("Error occured while saving data.", "Error", System.Windows.MessageBoxButton.OK);
                    IsObjectLoading = false;
                });
            }
        }
示例#4
0
 protected override void Edit()
 {
     editableObject = new EditableAdapter <TDetailViewModel>(Object);
     editableObject.BeginEdit();
     EditMode = EditMode.Editable;
 }
示例#5
0
 public EntityViewModelBase()
 {
     editableAdapter = new EditableAdapter <T>(this as T);
 }