feat.新添加设备的删除变量表界面不更新的问题。
This commit is contained in:
@@ -81,13 +81,10 @@ public partial class DeviceDetailViewModel : ViewModelBase
|
||||
if (addVarTableId > 0)
|
||||
{
|
||||
variableTableItemViewModel.Id = addVarTableId;
|
||||
if (_dataStorageService.Devices.TryGetValue(variableTableItemViewModel.DeviceId, out var device))
|
||||
{
|
||||
variableTableItemViewModel.Device = device;
|
||||
}
|
||||
|
||||
_notificationService.ShowSuccess($"添加变量表成功:{variableTableItemViewModel.Name}");
|
||||
variableTableItemViewModel.Device = CurrentDevice;
|
||||
CurrentDevice.VariableTables.Add(variableTableItemViewModel);
|
||||
_dataStorageService.VariableTables.Add(variableTableItemViewModel.Id, variableTableItemViewModel);
|
||||
_notificationService.ShowSuccess($"添加变量表成功:{variableTableItemViewModel.Name}");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -170,6 +167,15 @@ public partial class DeviceDetailViewModel : ViewModelBase
|
||||
var tableName = SelectedVariableTable.Name;
|
||||
if (await _wpfDataService.VariableDataService.DeleteVariableTable(SelectedVariableTable, true))
|
||||
{
|
||||
if (SelectedVariableTable.Device != null)
|
||||
{
|
||||
if (_dataStorageService.Devices.TryGetValue(SelectedVariableTable.DeviceId ,out var device))
|
||||
{
|
||||
device.VariableTables.Remove(SelectedVariableTable);
|
||||
}
|
||||
_dataStorageService.VariableTables.Remove(SelectedVariableTable.Id);
|
||||
SelectedVariableTable.Device.VariableTables.Remove(SelectedVariableTable);
|
||||
}
|
||||
_notificationService.ShowSuccess($"变量表:{tableName},删除成功。");
|
||||
}
|
||||
else
|
||||
@@ -189,7 +195,6 @@ public partial class DeviceDetailViewModel : ViewModelBase
|
||||
}
|
||||
|
||||
|
||||
|
||||
public override async Task OnNavigatedToAsync(NavigationParameter parameter)
|
||||
{
|
||||
if (_dataStorageService.Devices.TryGetValue(parameter.TargetId, out var device))
|
||||
@@ -221,7 +226,8 @@ public partial class DeviceDetailViewModel : ViewModelBase
|
||||
{
|
||||
// 导航到设备列表页面
|
||||
var navigationService = App.Current.Services.GetRequiredService<INavigationService>();
|
||||
await navigationService.NavigateToAsync(this, new NavigationParameter(nameof(DevicesViewModel), 0, NavigationType.Device));
|
||||
await navigationService.NavigateToAsync(
|
||||
this, new NavigationParameter(nameof(DevicesViewModel), 0, NavigationType.Device));
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -282,10 +282,10 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
|
||||
if (_dataStorageService.Devices.TryGetValue(variableTableItemViewModel.DeviceId, out var deviceModel))
|
||||
{
|
||||
variableTableItemViewModel.Device = deviceModel;
|
||||
deviceModel.VariableTables.Add(variableTableItemViewModel);
|
||||
_dataStorageService.VariableTables.Add(variableTableItemViewModel.Id, variableTableItemViewModel);
|
||||
}
|
||||
|
||||
_notificationService.ShowSuccess($"添加变量表成功:{variableTableItemViewModel.Name}");
|
||||
device.VariableTables.Add(variableTableItemViewModel);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -362,8 +362,14 @@ public partial class DevicesViewModel : ViewModelBase, INavigatable
|
||||
if (await _wpfDataService.VariableDataService.DeleteVariableTable(variableTable, true))
|
||||
{
|
||||
// Remove from parent device's collection
|
||||
if (variableTable.Device != null && variableTable.Device.VariableTables.Contains(variableTable))
|
||||
if (variableTable.Device != null)
|
||||
{
|
||||
if (_dataStorageService.Devices.TryGetValue(variableTable.DeviceId ,out var device))
|
||||
{
|
||||
device.VariableTables.Remove(variableTable);
|
||||
}
|
||||
_dataStorageService.VariableTables.Remove(variableTable.Id);
|
||||
|
||||
variableTable.Device.VariableTables.Remove(variableTable);
|
||||
}
|
||||
_notificationService.ShowSuccess($"变量表:{tableName},删除成功。");
|
||||
|
||||
Reference in New Issue
Block a user