113 lines
2.6 KiB
C#
113 lines
2.6 KiB
C#
using CommunityToolkit.Mvvm.ComponentModel;
|
||
using Plugin.Cowain.Driver.Models.Enum;
|
||
|
||
namespace Plugin.Cowain.Driver.ViewModels;
|
||
|
||
public partial class VariableViewModel : ObservableObject
|
||
{
|
||
[ObservableProperty]
|
||
private int _id;
|
||
[ObservableProperty]
|
||
private int _deviceId;
|
||
[ObservableProperty]
|
||
private string _deviceName = string.Empty;
|
||
[ObservableProperty]
|
||
private string _name = string.Empty;
|
||
[ObservableProperty]
|
||
private string _address = string.Empty;
|
||
[ObservableProperty]
|
||
private string _desc = string.Empty;
|
||
[ObservableProperty]
|
||
private DataTypeEnum _dataType;
|
||
[ObservableProperty]
|
||
private int _arrayCount;
|
||
[ObservableProperty]
|
||
private string _json = string.Empty;
|
||
[ObservableProperty]
|
||
private OperModeEnum _operMode;
|
||
|
||
[ObservableProperty]
|
||
private bool _alarmEnable;
|
||
|
||
[ObservableProperty]
|
||
private string _alarmValue = string.Empty;
|
||
|
||
[ObservableProperty]
|
||
private string _alarmMsg = string.Empty;
|
||
|
||
[ObservableProperty]
|
||
private int _alarmGroup;
|
||
|
||
[ObservableProperty]
|
||
private int _alarmLevel;
|
||
|
||
private string? _value;
|
||
|
||
public string? Value
|
||
{
|
||
get { return _value; }
|
||
set
|
||
{
|
||
SetProperty(ref _value, value);
|
||
if (value != null)
|
||
{
|
||
UpdateTime = DateTime.Now;
|
||
}
|
||
if (OldValue != _value)
|
||
{
|
||
//触发数据改变事件
|
||
OnDataChange();
|
||
}
|
||
//if (!string.IsNullOrEmpty(OldValue) && !OldValue.Equals(_value))
|
||
//{
|
||
// //OldValue不为空且不等于新值,触发数据改变事件
|
||
// OnDataChange();
|
||
//}
|
||
OldValue = value;
|
||
}
|
||
}
|
||
|
||
[ObservableProperty]
|
||
private string? _oldValue;
|
||
[ObservableProperty]
|
||
private DateTime _updateTime = DateTime.MinValue;
|
||
[ObservableProperty]
|
||
private string? _message;
|
||
[ObservableProperty]
|
||
private bool _isSuccess;
|
||
|
||
private Action<VariableViewModel>? dataChanged;//数据改变事件
|
||
|
||
public void Register(Action<VariableViewModel> action)
|
||
{
|
||
dataChanged += action;
|
||
}
|
||
|
||
public void UnRegister(Action<VariableViewModel> action)
|
||
{
|
||
if (dataChanged == null)
|
||
{
|
||
return;
|
||
}
|
||
if (action == null)
|
||
{
|
||
return;
|
||
}
|
||
dataChanged -= action;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 数据改变方法
|
||
/// </summary>
|
||
/// <param name="var"></param>
|
||
private void OnDataChange()
|
||
{
|
||
if (dataChanged != null)
|
||
{
|
||
dataChanged(this);
|
||
}
|
||
}
|
||
|
||
|
||
}
|