完成修改多个变量修给轮询时间

This commit is contained in:
2025-07-05 16:27:21 +08:00
parent d6939a7e66
commit ffd6aa392e
3 changed files with 36 additions and 8 deletions

View File

@@ -254,20 +254,25 @@ partial class VariableTableViewModel : ViewModelBase
} }
[RelayCommand] [RelayCommand]
private async Task ChangePollLevel() public async Task ChangePollLevel(List<VariableData> variablesToChange)
{ {
if (SelectedVariableData == null) if (variablesToChange == null || !variablesToChange.Any())
{ {
NotificationHelper.ShowMessage("请选择一个变量", NotificationType.Warning); NotificationHelper.ShowMessage("请选择要修改轮询频率的变量", NotificationType.Warning);
return; return;
} }
var newPollLevelType = await _dialogService.ShowPollLevelDialog(SelectedVariableData.PollLevelType); var newPollLevelType = await _dialogService.ShowPollLevelDialog(variablesToChange.First().PollLevelType);
if (newPollLevelType.HasValue) if (newPollLevelType.HasValue)
{ {
SelectedVariableData.PollLevelType = newPollLevelType.Value; foreach (var variable in variablesToChange)
await _varDataRepository.UpdateAsync(SelectedVariableData); {
NotificationHelper.ShowMessage($"变量 {SelectedVariableData.Name} 的轮询频率已更新", NotificationType.Success); variable.PollLevelType = newPollLevelType.Value;
variable.IsModified=false;
}
await _varDataRepository.UpdateAsync(variablesToChange);
NotificationHelper.ShowMessage($"已成功更新 {variablesToChange.Count} 个变量的轮询频率", NotificationType.Success);
} }
} }

View File

@@ -186,7 +186,7 @@
</MenuItem.Icon> </MenuItem.Icon>
</MenuItem> </MenuItem>
<MenuItem Header="修改轮询频率" <MenuItem Header="修改轮询频率"
Command="{Binding ChangePollLevelCommand}"> Click="ChangePollLevel_Click">
<MenuItem.Icon> <MenuItem.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" /> <ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
</MenuItem.Icon> </MenuItem.Icon>

View File

@@ -122,4 +122,27 @@ public partial class VariableTableView : UserControl
NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning); NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning);
} }
} }
private async void ChangePollLevel_Click(object sender, RoutedEventArgs args)
{
try
{
_viewModel = (VariableTableViewModel)this.DataContext;
var selectedVariables = BasicGridView.SelectedItems.Cast<VariableData>().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);
}
}
} }