From 5d4fcd1e2dfd8b673b7bc4af43cab770d2b622a3 Mon Sep 17 00:00:00 2001 From: Jason Lepp Date: Tue, 19 Oct 2010 14:50:41 -0600 Subject: Add IsDirty again --- src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs | 3 ++- src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs | 11 +++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs b/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs index af413eb..e05d305 100644 --- a/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs +++ b/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs @@ -40,7 +40,7 @@ namespace MVPtoMVVM.mvvm.viewmodels private void AddNewItem() { - TodoItems.Add(new TodoItemViewModel(todoItemRepository){Parent = this, DueDate = DateTime.Today, Description = string.Empty}); + TodoItems.Add(new TodoItemViewModel(todoItemRepository){Parent = this, DueDate = DateTime.Today, Description = string.Empty, IsDirty = false}); } private TodoItemViewModel MapFrom(TodoItem item) @@ -51,6 +51,7 @@ namespace MVPtoMVVM.mvvm.viewmodels Description = item.Description, DueDate = item.DueDate, Parent = this, + IsDirty = false, }; } diff --git a/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs b/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs index a33b9b4..cfe1ae8 100644 --- a/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs +++ b/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs @@ -16,6 +16,8 @@ namespace MVPtoMVVM.mvvm.viewmodels public IObservableCommand SaveCommand { get; set; } public IObservableCommand DeleteCommand { get; set; } public MainWindowViewModel Parent { get; set; } + private IDictionary validations; + public bool IsDirty { get; set; } public TodoItemViewModel(ITodoItemRepository todoItemRepository) { @@ -38,7 +40,7 @@ namespace MVPtoMVVM.mvvm.viewmodels private bool CanSave() { - return validations.Values.All(x => x.IsValid); + return validations.Values.All(x => x.IsValid) && IsDirty; } private void Save() @@ -47,6 +49,7 @@ namespace MVPtoMVVM.mvvm.viewmodels todoItem.DueDate = DueDate; todoItem.Description = Description; todoItemRepository.Save(todoItem); + IsDirty = false; } private string description; @@ -56,20 +59,20 @@ namespace MVPtoMVVM.mvvm.viewmodels set { description = value; + IsDirty = true; synchronizer.Update(x => x.Description); SaveCommand.Changed(); } } private DateTime dueDate; - private IDictionary validations; - public DateTime DueDate { get { return dueDate; } set { - dueDate = value; + dueDate = value; + IsDirty = true; synchronizer.Update(x => x.DueDate); synchronizer.Update(x => x.ShowDueSoonAlert); SaveCommand.Changed(); -- cgit v1.2.3