完成单个变量编辑

This commit is contained in:
2025-07-03 15:29:07 +08:00
parent f18b18dd64
commit 33fd86db41
4 changed files with 52 additions and 2 deletions

View File

@@ -93,4 +93,18 @@ public class DialogService :IDialogService
MessageBox.Show(message); MessageBox.Show(message);
} }
public async Task<VariableData> ShowEditVarDataDialog(VariableData variableData)
{
VarDataDialogViewModel vm = new();
vm.Title = "编辑变量";
vm.PrimaryButtonText = "编辑变量";
vm.VariableData = variableData;
var dialog = new VarDataDialog(vm);
var res = await dialog.ShowAsync();
if (res == ContentDialogResult.Primary)
{
return vm.VariableData;
}
return null;
}
} }

View File

@@ -14,4 +14,5 @@ public interface IDialogService
Task<VariableData> ShowAddVarDataDialog(); Task<VariableData> ShowAddVarDataDialog();
void ShowMessageDialog(string title, string message); void ShowMessageDialog(string title, string message);
Task<VariableData> ShowEditVarDataDialog(VariableData variableData);
} }

View File

@@ -23,6 +23,9 @@ partial class VariableTableViewModel : ViewModelBase
[ObservableProperty] [ObservableProperty]
private ObservableCollection<VariableData> _dataVariables; private ObservableCollection<VariableData> _dataVariables;
[ObservableProperty]
private VariableData _selectedVariableData;
/// <summary> /// <summary>
/// 是否是第一次加载,防止ToggleSwitch第一次加载触发改变事件 /// 是否是第一次加载,防止ToggleSwitch第一次加载触发改变事件
/// </summary> /// </summary>
@@ -53,6 +56,36 @@ partial class VariableTableViewModel : ViewModelBase
IsLoadCompletion = true; IsLoadCompletion = true;
} }
[RelayCommand]
public async void EditVarData(VariableTable variableTable)
{
try
{
// // 1. 显示添加设备对话框
var varData = await _dialogService.ShowEditVarDataDialog(SelectedVariableData);
// // 如果用户取消或对话框未返回设备,则直接返回
if (varData == null)
return;
varData.VariableTableId = variableTable.Id;
// 更新数据库
await _varDataRepository.UpdateAsync(varData);
// 更新当前页面的
var index = variableTable.DataVariables.IndexOf(SelectedVariableData);
// 更新变量表中的
if (index >= 0 && index < variableTable.DataVariables.Count)
variableTable.DataVariables[index] = varData;
NotificationHelper.ShowMessage($"编辑变量成功:{varData?.Name}", NotificationType.Success);
}
catch (Exception e)
{
string msg = $"编辑变量的过程中发生了不可预期的错误:";
Logger.Error(msg + e);
NotificationHelper.ShowMessage(msg + e.Message, NotificationType.Error);
}
}
[RelayCommand] [RelayCommand]
public async void AddVarData(VariableTable variableTable) public async void AddVarData(VariableTable variableTable)
{ {

View File

@@ -52,8 +52,9 @@
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" /> <ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Add}" />
</ui:AppBarButton.Icon> </ui:AppBarButton.Icon>
</ui:AppBarButton> </ui:AppBarButton>
<ui:AppBarButton x:Name="EditButton" <ui:AppBarButton Command="{Binding EditVarDataCommand}"
Label="Edit"> CommandParameter="{Binding VariableTable}"
Label="编辑变量">
<ui:AppBarButton.Icon> <ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" /> <ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Edit}" />
</ui:AppBarButton.Icon> </ui:AppBarButton.Icon>
@@ -102,6 +103,7 @@
<DataGrid Margin="10" <DataGrid Margin="10"
AutoGenerateColumns="False" AutoGenerateColumns="False"
CanUserSortColumns="True" CanUserSortColumns="True"
SelectedItem="{Binding SelectedVariableData}"
ItemsSource="{Binding DataVariables}"> ItemsSource="{Binding DataVariables}">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="名称" Binding="{Binding Name}" /> <DataGridTextColumn Header="名称" Binding="{Binding Name}" />