using CCDCount.DLL;
using CCDCount.MODEL.AlarmModel;
using CCDCount.MODEL.ConfigModel;
using CCDCount.MODEL.SqlDataModel;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Drawing.Text;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace CCDCountWpf
{
public class CameraCoboxItem
{
public string Name { get; set; } // 显示的名称
public string SNValue { get; set; } // 对应的编号
}
public class ShowBindingClass : INotifyPropertyChanged
{
///
/// 累计数量
///
private string allActiveNum = "0";
public string AllActiveNum
{
get { return allActiveNum; }
set
{
allActiveNum = value;
OnPropertyChanged("AllActiveNum");
}
}
///
/// 累计OK
///
private string allOkNum = "0";
public string AllOkNum
{
get { return allOkNum; }
set
{
allOkNum = value;
OnPropertyChanged("AllOkNum");
}
}
///
/// 累计NG
///
private string allNgNum = "0";
public string AllNgNum
{
get { return allNgNum; }
set
{
allNgNum = value;
OnPropertyChanged("AllNgNum");
}
}
///
/// 数粒速度
///
private string shuLiSpeed = "0";
public string ShuLiSpeed
{
get { return shuLiSpeed; }
set
{
shuLiSpeed = value;
OnPropertyChanged("ShuLiSpeed");
}
}
///
/// 数粒速度
///
private string bottingCountSpeed = "0";
public string BottingCountSpeed
{
get { return bottingCountSpeed; }
set
{
bottingCountSpeed = value;
OnPropertyChanged("BottingCountSpeed");
}
}
///
/// 内存监控
///
private string ramMonitor = "";
public string RamMonitor
{
get { return ramMonitor; }
set
{
ramMonitor = value;
OnPropertyChanged("RamMonitor");
}
}
///
/// CPU监控
///
private string _CPUMonitor = "";
public string CPUMonitor
{
get { return _CPUMonitor; }
set
{
_CPUMonitor = value;
OnPropertyChanged("CPUMonitor");
}
}
///
/// 相机运行状态
///
private string camRunStatic = "未运行";
public string CamRunStatic
{
get { return camRunStatic; }
set
{
camRunStatic = value;
OnPropertyChanged("CamRunStatic");
}
}
///
/// 历史结果当前图像编号
///
private int historyImageNum = 1;
public int HistoryImageNum
{
get { return historyImageNum; }
set
{
historyImageNum = value;
OnPropertyChanged("HistoryImageNum");
}
}
///
/// 历史结果图像数量
///
private int historyImageCount = 0;
public int HistoryImageCount
{
get { return historyImageCount; }
set
{
historyImageCount = value;
OnPropertyChanged("HistoryImageCount");
}
}
///
/// 历史结果图像
///
private BitmapImage historyImage;
public BitmapImage HistoryImage
{
get { return historyImage; }
set
{
historyImage = value;
OnPropertyChanged("HistoryImage");
}
}
///
/// 结果图像
///
private BitmapImage bitmapImage;
public BitmapImage BitmapImage
{
get { return bitmapImage; }
set
{
bitmapImage = value;
OnPropertyChanged("BitmapImage");
}
}
///
/// 结果图像
///
private BitmapImage _DebugImage;
public BitmapImage DebugImage
{
get { return _DebugImage; }
set
{
_DebugImage = value;
OnPropertyChanged("DebugImage");
}
}
///
/// 相机运行状态字体颜色
///
private SolidColorBrush cameraStaticColor = Brushes.Red;
public SolidColorBrush CameraStaticColor
{
get { return cameraStaticColor; }
set
{
cameraStaticColor = value;
OnPropertyChanged("CameraStaticColor");
}
}
///
/// 配方名称
///
public string FormulationName
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.FormulationName;
}
return "";
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
string oldValue = MessageBus.NowSettingLoadMainThread.FormulationName;
MessageBus.NowSettingLoadMainThread.FormulationName = value;
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
if (oldValue != value)
FaultLog.RecordValueChangeMessage($"FormulationName:{ oldValue }->{value}");
OnPropertyChanged("FormulationName");
}
}
}
///
/// 相机曝光时间
///
public string ExposureTimeValue
{
get
{
// 从MessageBus获取最新值(保证读取时同步)
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.ExposureTimeValue.ToString();
}
return "";
}
set
{
if (MessageBus.NowSettingLoadMainThread != null && float.TryParse(value, out float newValue))
{
// 同步更新到MessageBus
float oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.ExposureTimeValue;
MessageBus.NowSettingLoadMainThread.cameraConfig.ExposureTimeValue = newValue;
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != newValue)
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} ExposureTimeValue:{oldValue}->{newValue}");
OnPropertyChanged("ExposureTimeValue");
}
}
}
///
/// 相机行频
///
public string AcquistionLineRate
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.AcquistionLineRateValue.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
float oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.AcquistionLineRateValue;
MessageBus.NowSettingLoadMainThread.cameraConfig.AcquistionLineRateValue = int.Parse(value);
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}AcquistionLineRate:{oldValue}->{value}");
OnPropertyChanged("AcquistionLineRate");
}
catch (Exception)
{
Console.WriteLine("AcquistionLineRate-SetError");
}
}
}
}
///
/// 图像宽度
///
public string ImageWidth
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.Width.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.Width;
MessageBus.NowSettingLoadMainThread.cameraConfig.Width = int.Parse(value);
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}ImageWidth{oldValue}->{value}");
OnPropertyChanged("ImageWidth");
}
catch (Exception)
{
Console.WriteLine("ImageWidth-SetError");
}
}
}
}
///
/// 图像宽度
///
public string ImageHeight
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.Height.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.Height;
MessageBus.NowSettingLoadMainThread.cameraConfig.Height = int.Parse(value);
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}ImageHeight{oldValue}->{value}");
OnPropertyChanged("ImageHeight");
}
catch (Exception)
{
Console.WriteLine("ImageHeight-SetError");
}
}
}
}
///
/// 相机名称(用户自定义)
///
public string CamUserName
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.CameraName;
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
string oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.CameraName == "" ? "null" : MessageBus.NowSettingLoadMainThread.cameraConfig.CameraName;
MessageBus.NowSettingLoadMainThread.cameraConfig.CameraName = value;
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != value)
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}CamUserName:{oldValue}->{value}");
OnPropertyChanged("CamUserName");
}
catch (Exception)
{
Console.WriteLine("CamUserName-SetError");
}
}
}
}
///
/// 图像偏移X
///
public string CamOffsetX
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.OffsetX.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.OffsetX;
MessageBus.NowSettingLoadMainThread.cameraConfig.OffsetX = int.Parse(value);
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
MessageBus.NowSettingLoadMainThread.ReLoadCameraConfig();
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}CamOffsetX:{oldValue}->{value}");
OnPropertyChanged("CamOffsetX");
}
catch (Exception)
{
Console.WriteLine("CamOffsetX-SetError");
}
}
}
}
///
/// 相机列表
///
public ObservableCollection CameraItems { get; } = new ObservableCollection();
public ObservableCollection FormulationItems { get; } = new ObservableCollection();
public ObservableCollection BatchItems { get; } = new ObservableCollection();
public ObservableCollection ValueChangeItems { get; } = new ObservableCollection();
public ObservableCollection ErrorMessItems { get; } = new ObservableCollection();
///
/// 当前选择的相机SN
///
public string CameraSNNum
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
string oldValue = MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum;
MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum = value;
MessageBus.NowSettingLoadMainThread.shuLiConfig.CameraSN = value;
MessageBus.NowSettingLoadMainThread.CameraConfigIsChange = true;
FaultLog.RecordValueChangeMessage($"Camera{MessageBus.NowSettingLoadMainThread.cameraConfig.CamerNo}CameraSNNum:{oldValue}->{value}");
OnPropertyChanged("CameraSNNum");
}
catch (Exception)
{
Console.WriteLine("CameraSNNum-SetError");
}
}
}
}
///
/// 预处理阈值
///
public string RegionThreshold
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.RegionThreshold.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.RegionThreshold;
MessageBus.NowSettingLoadMainThread.shuLiConfig.RegionThreshold = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} RegionThreshold:{oldValue}->{value}");
OnPropertyChanged("RegionThreshold");
}
catch (Exception)
{
Console.WriteLine("RegionThreshold-SetError");
}
}
}
}
///
/// 数粒通道数
///
public string Channel
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.Channel.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.Channel;
MessageBus.NowSettingLoadMainThread.shuLiConfig.Channel = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} Channel{oldValue}->{value}");
OnPropertyChanged("Channel");
}
catch (Exception)
{
Console.WriteLine("Channel-SetError");
}
}
}
}
///
/// 噪声滤波阈值
///
public string NoiseFilter
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.NoiseFilter_Threshold.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.NoiseFilter_Threshold;
MessageBus.NowSettingLoadMainThread.shuLiConfig.NoiseFilter_Threshold = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} NoiseFilter{oldValue}->{value}");
OnPropertyChanged("NoiseFilter");
}
catch (Exception)
{
Console.WriteLine("NoiseFilter-SetError");
}
}
}
}
///
/// 合格粒最小宽
///
public string MIN_OBJECT_WIDTH
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_WIDTH.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_WIDTH;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_WIDTH = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} MIN_OBJECT_WIDTH{oldValue}->{value}");
OnPropertyChanged("MIN_OBJECT_WIDTH");
}
catch (Exception)
{
Console.WriteLine("MIN_OBJECT_WIDTH-SetError");
}
}
}
}
///
/// 合格粒最大宽
///
public string MAX_OBJECT_WIDTH
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_WIDTH.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_WIDTH;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_WIDTH = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters {MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}MAX_OBJECT_WIDTH{oldValue}->{value}");
OnPropertyChanged("MAX_OBJECT_WIDTH");
}
catch (Exception)
{
Console.WriteLine("MAX_OBJECT_WIDTH-SetError");
}
}
}
}
///
/// 合格粒最小高
///
public string MIN_OBJECT_HEIGHT
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_HEIGHT.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_HEIGHT;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_OBJECT_HEIGHT = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters {MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}MIN_OBJECT_HEIGHT{oldValue}->{value}");
OnPropertyChanged("MIN_OBJECT_HEIGHT");
}
catch (Exception)
{
Console.WriteLine("MIN_OBJECT_HEIGHT-SetError");
}
}
}
}
///
/// 合格粒最大高
///
public string MAX_OBJECT_HEIGHT
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_HEIGHT.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_HEIGHT;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_OBJECT_HEIGHT = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum}MAX_OBJECT_HEIGHT{oldValue}->{value}");
OnPropertyChanged("MAX_OBJECT_HEIGHT");
}
catch (Exception)
{
Console.WriteLine("MAX_OBJECT_HEIGHT-SetError");
}
}
}
}
///
/// 合格粒最长长度
///
public string MAX_OBJECT_LENGTH
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_Object_LENGTH.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_Object_LENGTH;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MAX_Object_LENGTH = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} MAX_Object_LENGTH{oldValue}->{value}");
OnPropertyChanged("MAX_Object_LENGTH");
}
catch (Exception)
{
Console.WriteLine("MAX_Object_LENGTH-SetError");
}
}
}
}
///
/// 合格粒最短长度
///
public string MIN_OBJECT_LENGTH
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_Object_LENGTH.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_Object_LENGTH;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MIN_Object_LENGTH = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} MIN_Object_LENGTH{oldValue}->{value}");
OnPropertyChanged("MIN_Object_LENGTH");
}
catch (Exception)
{
Console.WriteLine("MIN_Object_LENGTH-SetError");
}
}
}
}
///
/// 合格粒最小面积
///
public string MinArea
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MinArea.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MinArea;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MinArea = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} MinArea{oldValue}->{value}");
OnPropertyChanged("MinArea");
}
catch (Exception)
{
Console.WriteLine("MinArea-SetError");
}
}
}
}
///
/// 合格粒最大面积
///
public string MaxArea
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MaxArea.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.MaxArea;
MessageBus.NowSettingLoadMainThread.shuLiConfig.MaxArea = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} MaxArea{oldValue}->{value}");
OnPropertyChanged("MaxArea");
}
catch (Exception)
{
Console.WriteLine("MaxArea-SetError");
}
}
}
}
///
/// 异常粒识别码
///
public string PandingCode
{
get
{
if (MessageBus.NowSettingLoadMainThread != null)
{
return MessageBus.NowSettingLoadMainThread.shuLiConfig.MaxArea.ToString();
}
else
{
return "";
}
}
set
{
if (MessageBus.NowSettingLoadMainThread != null)
{
try
{
int oldValue = MessageBus.NowSettingLoadMainThread.shuLiConfig.PandingCode;
if(oldValue != int.Parse(value))
{
MessageBus.NowSettingLoadMainThread.shuLiConfig.PandingCode = int.Parse(value);
if (oldValue != int.Parse(value))
FaultLog.RecordValueChangeMessage($"Identify parameters{MessageBus.NowSettingLoadMainThread.cameraConfig.CameraSNNum} PandingCode{oldValue}->{value}");
}
OnPropertyChanged("PandingCode");
}
catch (Exception)
{
Console.WriteLine("PandingCode-SetError");
}
}
}
}
///
/// 错误信息列表
///
private List errMessageList = new List();
public List ErrMessageShowList
{
get { return errMessageList; }
set
{
errMessageList = value;
OnPropertyChanged("ErrMessageShowList");
}
}
private List alarmMessShowList = new List();
public List AlarmMessShowList
{
get { return alarmMessShowList; }
set
{
alarmMessShowList = value;
OnPropertyChanged("AlarmMessShowList");
}
}
///
/// 用户数据信息列表
///
private List userMesDataModels = new List();
public List UserMesDataModels
{
get { return userMesDataModels; }
set
{
userMesDataModels = value;
OnPropertyChanged("userMesDataModels");
}
}
private string batchNumber = "";
public string BatchNumber
{
get { return batchNumber; }
set
{
batchNumber = value;
OnPropertyChanged("BatchNumber");
}
}
private int bottingCount;
public int BottingCount
{
get { return bottingCount; }
set
{
bottingCount = value;
OnPropertyChanged("BottingCount");
}
}
private ushort bottingSpeed;
public ushort BottingSpeed
{
get { return bottingSpeed; }
set
{
bottingSpeed = value;
OnPropertyChanged("BottingSpeed");
}
}
private string showTimer;
public string ShowTimer
{
get { return showTimer; }
set
{
showTimer = value;
OnPropertyChanged("ShowTimer");
}
}
//数据绑定核心实现
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
}