diff options
| author | Craig Anderson <canderson@arcresources.com> | 2010-10-18 11:16:01 -0600 |
|---|---|---|
| committer | Craig Anderson <canderson@arcresources.com> | 2010-10-18 11:16:01 -0600 |
| commit | 738c0250b82bbb16c98330a8e68a711022214dce (patch) | |
| tree | 03f562e1b33e1ad944bd1104fcd67ef074789f5c | |
| parent | c09f638af5e65355add2214013bc9d1f47797b05 (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.xaml | 2 | ||||
| -rw-r--r-- | src/MVPtoMVVM.mvvm/viewmodels/MainWindowViewModel.cs | 13 | ||||
| -rw-r--r-- | src/MVPtoMVVM.mvvm/viewmodels/ToDoItemViewModel.cs | 3 |
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);
|
