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