diff SilverlightGlimpse/SilverlightValidation/ViewModels/UserListViewModel.cs @ 69:a0bcd783e612

Latest work
author Steven Hollidge <stevenhollidge@hotmail.com>
date Mon, 23 Apr 2012 11:06:10 +0100
parents
children 96e6fbd70f49
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SilverlightGlimpse/SilverlightValidation/ViewModels/UserListViewModel.cs	Mon Apr 23 11:06:10 2012 +0100
@@ -0,0 +1,63 @@
+using System.Collections.ObjectModel;
+using System.Windows.Input;
+using SilverlightValidation.Commands;
+using SilverlightValidation.Models;
+using SilverlightValidation.Validators;
+using SilverlightValidation.Views;
+using GalaSoft.MvvmLight.Messaging;
+using SilverlightValidation.Messages;
+
+namespace SilverlightValidation.ViewModels
+{
+    public class UserListViewModel
+    {
+        UserView window;
+
+        public UserListViewModel(IList<UserModel> models, UserModelValidator validator)
+        {
+            Data = new ObservableCollection<UserViewModel>();
+
+            foreach (var model in models)
+                Data.Add(new UserViewModel(model, validator));
+
+            AddCommand = new RelayCommand(AddCommandExecute);
+            DeleteCommand = new RelayCommand(DeleteCommandExecute);
+
+            Messenger.Default.Register<UserViewResponseMessage>(this, UserViewResponseMessageReceived);
+        }
+
+        private void UserViewResponseMessageReceived(UserViewResponseMessage userViewResponseMessage)
+        {
+            if (userViewResponseMessage.UserViewModel != null)
+                Data.Add(userViewResponseMessage.UserViewModel);
+            window.Close();
+        }
+
+        #region Properties
+
+        public ObservableCollection<UserViewModel> Data { get; set; }
+
+        public UserViewModel SelectedItem { get; set; }
+
+        #endregion
+
+        #region Commands
+
+        public ICommand AddCommand { get; set; }
+        public ICommand DeleteCommand { get; set; }
+
+        private void AddCommandExecute(object obj)
+        {
+            window = new UserView();
+            window.Show();
+        }
+
+        private void DeleteCommandExecute(object obj)
+        {
+            if (SelectedItem!=null)
+                Data.Remove(SelectedItem);
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file