完成信号类型的绑定,和选择

This commit is contained in:
2025-07-03 20:12:07 +08:00
parent 33fd86db41
commit 6c2e6bd490
4 changed files with 185 additions and 19 deletions

View File

@@ -1,9 +1,11 @@
using System.Collections.ObjectModel;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Newtonsoft.Json;
using NLog;
using PMSWPF.Data.Repositories;
using PMSWPF.Enums;
using PMSWPF.Extensions;
using PMSWPF.Helper;
using PMSWPF.Models;
using PMSWPF.Services;
@@ -23,6 +25,8 @@ partial class VariableTableViewModel : ViewModelBase
[ObservableProperty]
private ObservableCollection<VariableData> _dataVariables;
private ObservableCollection<VariableData> _originalDataVariables;
[ObservableProperty]
private VariableData _selectedVariableData;
@@ -50,6 +54,10 @@ partial class VariableTableViewModel : ViewModelBase
if (VariableTable.DataVariables != null)
{
DataVariables = new ObservableCollection<VariableData>(VariableTable.DataVariables);
// 3. 创建原始数据的深拷贝备份
// 推荐使用 JSON 序列化/反序列化进行深度拷贝
var serialized = JsonConvert.SerializeObject(DataVariables);
_originalDataVariables = JsonConvert.DeserializeObject<ObservableCollection<VariableData>>(serialized);
}
@@ -113,6 +121,13 @@ partial class VariableTableViewModel : ViewModelBase
}
}
public void OnVarTableDataChanged(VariableData varData)
{
var originelData = _originalDataVariables.FirstOrDefault(d => d.Id == varData.Id);
// varData.IsModified = originelData.Equals(varData);
// varData.IsModified = originelData.ValueEquals(varData);
}
public async Task OnIsActiveChanged(bool active)
{