Explorar o código

Сделано удаление

Вадим Королёв hai 6 meses
pai
achega
16c561326e

+ 1 - 1
src/DontHarmDesktop/Pages/Services.xaml

@@ -26,7 +26,7 @@
                     Command="{Binding EditServiceCmd}">Редактировать</Button>
                 <Button 
                     Style="{StaticResource Destructive}"
-                    Command="{Binding AddServiceCmd}">Удалить</Button>
+                    Command="{Binding DeleteServiceCmd}">Удалить</Button>
             </StackPanel>
 
             <DataGrid 

+ 29 - 2
src/DontHarmDesktop/ViewModels/ServicesViewModel.cs

@@ -3,17 +3,20 @@ using Prism.Commands;
 using Prism.Mvvm;
 using System;
 using System.Collections.Generic;
+using System.Collections.ObjectModel;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Windows;
 
 namespace DontHarmDesktop.ViewModels
 {
     class ServicesViewModel : BindableBase
     {
-        public List<services> Services { get; set; }
+        public ObservableCollection<services> Services { get; set; }
         public DelegateCommand AddServiceCmd { get; set; }
         public DelegateCommand EditServiceCmd { get; set; }
+        public DelegateCommand DeleteServiceCmd { get; set; }
         public Models.services SelectedService { get; set; }
 
         public ServicesViewModel()
@@ -21,10 +24,11 @@ namespace DontHarmDesktop.ViewModels
             var db = new Models.Entities();
 
             // Сбор услуг, которые не скрыты
-            Services = db.services.Where(s => s.hidden == false).ToList();
+            Services = new ObservableCollection<services>(db.services.Where(s => s.hidden == false));
 
             AddServiceCmd = new DelegateCommand(AddServiceExecuted);
             EditServiceCmd = new DelegateCommand(EditServiceExecuted);
+            DeleteServiceCmd = new DelegateCommand(DeleteServiceExecuted);
         }
 
         /// <summary>
@@ -42,5 +46,28 @@ namespace DontHarmDesktop.ViewModels
         {
             Navigation.toServiceEdit(SelectedService);
         }
+
+        private void DeleteServiceExecuted()
+        {
+            // Показать подтверждение
+            var response = MessageBox.Show(
+                "Вы действительно хотите удалить услугу: " + SelectedService.name + "?",
+                "Подтвердите удаление",
+                MessageBoxButton.YesNo,
+                MessageBoxImage.Question
+            );
+            
+            if (response == MessageBoxResult.No )
+            {
+                return;
+            }
+
+            var db = new Models.Entities();
+            var toRemove = db.services.FirstOrDefault(s => s.id == SelectedService.id);
+            db.services.Remove(toRemove);
+            db.SaveChanges();
+
+            Services.Remove(SelectedService);
+        }
     }
 }