summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Anderson <canderson@arcresources.com>2010-10-18 11:16:01 -0600
committerCraig Anderson <canderson@arcresources.com>2010-10-18 11:16:01 -0600
commit738c0250b82bbb16c98330a8e68a711022214dce (patch)
tree03f562e1b33e1ad944bd1104fcd67ef074789f5c
parentc09f638af5e65355add2214013bc9d1f47797b05 (diff)
Fixed cancel changes so that it wipes the list and loads only the items that were saved.
-rw-r--r--src/MVPtoMVVM.mvvm/MainWindow.xaml2
-rw-r--r--src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs13
-rw-r--r--src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs3
3 files changed, 11 insertions, 7 deletions
diff --git a/src/MVPtoMVVM.mvvm/MainWindow.xaml b/src/MVPtoMVVM.mvvm/MainWindow.xaml
index 84ebd58..debab4c 100644
--- a/src/MVPtoMVVM.mvvm/MainWindow.xaml
+++ b/src/MVPtoMVVM.mvvm/MainWindow.xaml
@@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<DockPanel LastChildFill="False">
- <ListView DockPanel.Dock="Top" ItemsSource="{Binding Path=TodoItems}" >
+ <ListView DockPanel.Dock="Top" ItemsSource="{Binding Path=TodoItems}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
diff --git a/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs b/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs
index ed35fe6..2e59e0d 100644
--- a/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs
+++ b/src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs
@@ -22,21 +22,24 @@ namespace MVPtoMVVM.mvvm.viewmodels
AddNewItemCommand = new SimpleCommand(AddNewItem);
CancelChangesCommand = new SimpleCommand(RefreshChanges);
updater = new Synchronizer<MainWindowViewModel>(this.PropertyChanged);
+ TodoItems = new ObservableCollection<TodoItemViewModel>();
RefreshChanges();
}
private void RefreshChanges()
{
- TodoItems = new ObservableCollection<TodoItemViewModel>(todoItemRepository.GetAll().Select(MapFrom));
+ TodoItems.Clear();
+ foreach (var item in todoItemRepository.GetAll().Select(MapFrom))
+ {
+ TodoItems.Add(item);
+ }
+
updater.Update(x => x.TodoItems);
}
private void AddNewItem()
{
- var todoItem = new TodoItem();
- todoItemRepository.Save(todoItem);
-
- TodoItems.Add(MapFrom(todoItem));
+ TodoItems.Add(new TodoItemViewModel(todoItemRepository){Parent = this});
updater.Update(x => x.TodoItems);
}
diff --git a/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs b/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs
index 2e809a3..f84b4c2 100644
--- a/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs
+++ b/src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs
@@ -1,6 +1,7 @@
using System;
using System.ComponentModel;
using System.Windows.Input;
+using MVPtoMVVM.domain;
using MVPtoMVVM.repositories;
namespace MVPtoMVVM.mvvm.viewmodels
@@ -32,7 +33,7 @@ namespace MVPtoMVVM.mvvm.viewmodels
private void Save()
{
- var todoItem = todoItemRepository.Get(Id);
+ var todoItem = todoItemRepository.Get(Id) ?? new TodoItem();
todoItem.DueDate = DueDate;
todoItem.Description = Description;
todoItemRepository.Save(todoItem);