From ffd6aa392eb47d78c9304718b4a1ae90cecfd6b6 Mon Sep 17 00:00:00 2001 From: "David P.G" Date: Sat, 5 Jul 2025 16:27:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BF=AE=E6=94=B9=E5=A4=9A?= =?UTF-8?q?=E4=B8=AA=E5=8F=98=E9=87=8F=E4=BF=AE=E7=BB=99=E8=BD=AE=E8=AF=A2?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ViewModels/VariableTableViewModel.cs | 19 ++++++++++++------- Views/VariableTableView.xaml | 2 +- Views/VariableTableView.xaml.cs | 23 +++++++++++++++++++++++ 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/ViewModels/VariableTableViewModel.cs b/ViewModels/VariableTableViewModel.cs index 07ffc2b..61a3ed2 100644 --- a/ViewModels/VariableTableViewModel.cs +++ b/ViewModels/VariableTableViewModel.cs @@ -254,20 +254,25 @@ partial class VariableTableViewModel : ViewModelBase } [RelayCommand] - private async Task ChangePollLevel() + public async Task ChangePollLevel(List variablesToChange) { - if (SelectedVariableData == null) + if (variablesToChange == null || !variablesToChange.Any()) { - NotificationHelper.ShowMessage("请选择一个变量", NotificationType.Warning); + NotificationHelper.ShowMessage("请选择要修改轮询频率的变量", NotificationType.Warning); return; } - var newPollLevelType = await _dialogService.ShowPollLevelDialog(SelectedVariableData.PollLevelType); + var newPollLevelType = await _dialogService.ShowPollLevelDialog(variablesToChange.First().PollLevelType); if (newPollLevelType.HasValue) { - SelectedVariableData.PollLevelType = newPollLevelType.Value; - await _varDataRepository.UpdateAsync(SelectedVariableData); - NotificationHelper.ShowMessage($"变量 {SelectedVariableData.Name} 的轮询频率已更新", NotificationType.Success); + foreach (var variable in variablesToChange) + { + variable.PollLevelType = newPollLevelType.Value; + variable.IsModified=false; + } + + await _varDataRepository.UpdateAsync(variablesToChange); + NotificationHelper.ShowMessage($"已成功更新 {variablesToChange.Count} 个变量的轮询频率", NotificationType.Success); } } diff --git a/Views/VariableTableView.xaml b/Views/VariableTableView.xaml index 8019985..42acbf6 100644 --- a/Views/VariableTableView.xaml +++ b/Views/VariableTableView.xaml @@ -186,7 +186,7 @@ + Click="ChangePollLevel_Click"> diff --git a/Views/VariableTableView.xaml.cs b/Views/VariableTableView.xaml.cs index 640158c..2c8f36a 100644 --- a/Views/VariableTableView.xaml.cs +++ b/Views/VariableTableView.xaml.cs @@ -122,4 +122,27 @@ public partial class VariableTableView : UserControl NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning); } } + + private async void ChangePollLevel_Click(object sender, RoutedEventArgs args) + { + try + { + _viewModel = (VariableTableViewModel)this.DataContext; + var selectedVariables = BasicGridView.SelectedItems.Cast().ToList(); + if (selectedVariables.Any()) + { + await _viewModel.ChangePollLevel(selectedVariables); + } + else + { + NotificationHelper.ShowMessage("请选择要修改轮询频率的变量", NotificationType.Warning); + } + } + catch (Exception e) + { + string msg = "修改轮询时间时发生了错误:"; + Logger.Error(msg + e); + NotificationHelper.ShowMessage(msg + e.Message, NotificationType.Error); + } + } } \ No newline at end of file