Commit 738c025
Changed files (3)
src
MVPtoMVVM.mvvm
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);
}
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);
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">