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