修复变量值不更新的问题

This commit is contained in:
2025-09-09 15:57:04 +08:00
parent 1dad2a0d2f
commit 7fad87fff5
8 changed files with 44 additions and 17 deletions

View File

@@ -37,7 +37,7 @@ public class DataEventService : IDataEventService
// 监听变量值变更事件
_appDataCenterService.VariableManagementService.OnVariableChanged += OnVariableValueChanged;
_appDataCenterService.VariableManagementService.OnVariableValueChanged += OnVariableValueChanged;
_appDataCenterService.DataLoaderService.OnLoadDataCompleted += OnLoadDataCompleted;
// 监听日志变更事件
// _appDataCenterService.OnLogChanged += _logDataService.OnNlogChanged;
@@ -60,18 +60,18 @@ public class DataEventService : IDataEventService
/// <summary>
/// 处理变量值变更事件。
/// </summary>
private void OnVariableValueChanged(object? sender, VariableChangedEventArgs e)
private void OnVariableValueChanged(object? sender, VariableValueChangedEventArgs e)
{
// 在UI线程上更新变量值
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
// 查找并更新对应的变量
var variableToUpdate = _dataStorageService.Variables.FirstOrDefault(v => v.Id == e.Variable.Id);
var variableToUpdate = _dataStorageService.Variables.FirstOrDefault(v => v.Id == e.VariableId);
if (variableToUpdate != null)
{
variableToUpdate.DataValue = e.Variable.DataValue;
variableToUpdate.DisplayValue = e.Variable.DisplayValue;
variableToUpdate.UpdatedAt = e.Variable.UpdatedAt;
variableToUpdate.DataValue = e.NewValue;
variableToUpdate.DisplayValue = e.NewValue;
variableToUpdate.UpdatedAt = e.UpdateTime;
}
}));
}

View File

@@ -32,9 +32,12 @@ public class VariableTableDataService : IVariableTableDataService
public void LoadAllVariableTables()
{
foreach (var variableTable in _dataStorageService.VariableTables)
foreach (var device in _dataStorageService.Devices)
{
_dataStorageService.VariableTables.Add(variableTable);
foreach (var variableTable in device.VariableTables)
{
_dataStorageService.VariableTables.Add(variableTable);
}
}
}