From ccfc2d8159f03ba6534df013df55f3a2e3146c7d Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Sat, 5 Jul 2025 00:18:59 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=B8=AA=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Data/Repositories/VarDataRepository.cs | 2 +- ViewModels/VariableTableViewModel.cs | 19 +++++++++++-------- Views/VariableTableView.xaml | 8 +++++--- Views/VariableTableView.xaml.cs | 14 ++++++++++++++ 4 files changed, 31 insertions(+), 12 deletions(-) diff --git a/Data/Repositories/VarDataRepository.cs b/Data/Repositories/VarDataRepository.cs index 52136fb..102d069 100644 --- a/Data/Repositories/VarDataRepository.cs +++ b/Data/Repositories/VarDataRepository.cs @@ -273,7 +273,7 @@ public class VarDataRepository stopwatch.Start(); using var _db = DbContext.GetInstance(); - var dbList = variableDatas.Select(vd => vd.CopyTo()); + var dbList = variableDatas.Select(vd => vd.CopyTo()).ToList(); var result = await _db.Deleteable(dbList) .ExecuteCommandAsync(); stopwatch.Stop(); diff --git a/ViewModels/VariableTableViewModel.cs b/ViewModels/VariableTableViewModel.cs index a8ae70f..906be53 100644 --- a/ViewModels/VariableTableViewModel.cs +++ b/ViewModels/VariableTableViewModel.cs @@ -212,17 +212,18 @@ partial class VariableTableViewModel : ViewModelBase } [RelayCommand] - private async void DeleteVarData() + public async Task DeleteVarData(List variablesToDelete) { - if (SelectedVariableData == null) + if (variablesToDelete == null || !variablesToDelete.Any()) { NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning); return; } + var names = string.Join("、", variablesToDelete.Select(v => v.Name)); var confirm = await _dialogService.ShowConfrimeDialog( "删除确认", - $"确定要删除变量 \"{SelectedVariableData.Name}\" 吗?", + $"确定要删除选中的 {variablesToDelete.Count} 个变量吗?\n\n{names}", "删除"); if (!confirm) @@ -230,16 +231,18 @@ partial class VariableTableViewModel : ViewModelBase try { - var result = await _varDataRepository.DeleteAsync(SelectedVariableData); + var result = await _varDataRepository.DeleteAsync(variablesToDelete); if (result > 0) { - var dataName = SelectedVariableData.Name; - DataVariables.Remove(SelectedVariableData); - NotificationHelper.ShowMessage($"变量 \"{dataName}\" 删除成功", NotificationType.Success); + foreach (var variable in variablesToDelete) + { + DataVariables.Remove(variable); + } + NotificationHelper.ShowMessage($"成功删除 {result} 个变量", NotificationType.Success); } else { - NotificationHelper.ShowMessage($"变量 \"{SelectedVariableData.Name}\" 删除失败", NotificationType.Error); + NotificationHelper.ShowMessage("删除变量失败", NotificationType.Error); } } catch (Exception e) diff --git a/Views/VariableTableView.xaml b/Views/VariableTableView.xaml index eb7f62b..3dc04c2 100644 --- a/Views/VariableTableView.xaml +++ b/Views/VariableTableView.xaml @@ -70,8 +70,8 @@ - + @@ -141,10 +141,12 @@ - diff --git a/Views/VariableTableView.xaml.cs b/Views/VariableTableView.xaml.cs index 2ed0389..640158c 100644 --- a/Views/VariableTableView.xaml.cs +++ b/Views/VariableTableView.xaml.cs @@ -108,4 +108,18 @@ public partial class VariableTableView : UserControl NotificationHelper.ShowMessage(msg + e.Message, NotificationType.Error); } } + + private async void DeleteVarData_Click(object sender, RoutedEventArgs e) + { + _viewModel = (VariableTableViewModel)this.DataContext; + var selectedVariables = BasicGridView.SelectedItems.Cast().ToList(); + if (selectedVariables.Any()) + { + await _viewModel.DeleteVarData(selectedVariables); + } + else + { + NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning); + } + } } \ No newline at end of file