完成个删除变量功能

This commit is contained in:
2025-07-05 00:18:59 +08:00
parent 2b5d7566fe
commit ccfc2d8159
4 changed files with 31 additions and 12 deletions

View File

@@ -273,7 +273,7 @@ public class VarDataRepository
stopwatch.Start();
using var _db = DbContext.GetInstance();
var dbList = variableDatas.Select(vd => vd.CopyTo<DbVariableData>());
var dbList = variableDatas.Select(vd => vd.CopyTo<DbVariableData>()).ToList();
var result = await _db.Deleteable<DbVariableData>(dbList)
.ExecuteCommandAsync();
stopwatch.Stop();

View File

@@ -212,17 +212,18 @@ partial class VariableTableViewModel : ViewModelBase
}
[RelayCommand]
private async void DeleteVarData()
public async Task DeleteVarData(List<VariableData> 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)

View File

@@ -70,8 +70,8 @@
</ui:AppBarButton.Icon>
</ui:AppBarButton>
<ui:AppBarButton Command="{Binding DeleteVarDataCommand}"
Label="删除变量">
<ui:AppBarButton Label="删除变量"
Click="DeleteVarData_Click">
<ui:AppBarButton.Icon>
<ui:FontIcon Icon="{x:Static ui:SegoeFluentIcons.Delete}" />
</ui:AppBarButton.Icon>
@@ -141,10 +141,12 @@
</ikw:SimpleStackPanel>
<DataGrid Margin="10"
<DataGrid x:Name="BasicGridView"
Margin="10"
CellEditEnding="DataGrid_OnCellEditEnding"
AutoGenerateColumns="False"
CanUserSortColumns="True"
SelectionMode="Extended"
SelectedItem="{Binding SelectedVariableData}"
ItemsSource="{Binding DataVariables}">
<DataGrid.RowStyle>

View File

@@ -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<VariableData>().ToList();
if (selectedVariables.Any())
{
await _viewModel.DeleteVarData(selectedVariables);
}
else
{
NotificationHelper.ShowMessage("请选择要删除的变量", NotificationType.Warning);
}
}
}