7 changed files with 409 additions and 34 deletions
@ -0,0 +1,27 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Globalization; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.Windows; |
||||
|
using System.Windows.Data; |
||||
|
|
||||
|
namespace SunlightCentralizedControlManagement_SCCM_.ConvertMoels |
||||
|
{ |
||||
|
internal class BoolToVisidilityConvert : IValueConverter |
||||
|
{ |
||||
|
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) |
||||
|
{ |
||||
|
return (value is bool boolvalue && boolvalue) ? |
||||
|
Visibility.Visible: |
||||
|
Visibility.Collapsed; |
||||
|
} |
||||
|
|
||||
|
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) |
||||
|
{ |
||||
|
throw new NotImplementedException(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
@ -0,0 +1,162 @@ |
|||||
|
using SunlightCentralizedControlManagement_SCCM_.EX; |
||||
|
using SunlightCentralizedControlManagement_SCCM_.UserClass; |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Collections.ObjectModel; |
||||
|
using System.ComponentModel; |
||||
|
using System.Data; |
||||
|
using System.Data.SqlClient; |
||||
|
using System.Linq; |
||||
|
using System.Reflection; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using System.Windows.Threading; |
||||
|
using static SunlightCentralizedControlManagement_SCCM_.ViewModel.MainWindowViewModel; |
||||
|
|
||||
|
namespace SunlightCentralizedControlManagement_SCCM_.ViewModel |
||||
|
{ |
||||
|
|
||||
|
public class MonitorViewModel : ViewModelBase |
||||
|
{ |
||||
|
public MonitorViewModel() |
||||
|
{ |
||||
|
// DispatcherTimer timer1s = new DispatcherTimer(DispatcherPriority.Normal);//初始化循环,每1秒调用一次Tick
|
||||
|
// timer1s.Interval = TimeSpan.FromMilliseconds(950);//秒
|
||||
|
// timer1s.Tick += Tick_Main_1S;
|
||||
|
// timer1s.Start();
|
||||
|
} |
||||
|
|
||||
|
void Tick_Main_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S
|
||||
|
{ |
||||
|
DATA_view(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
public string sys_machine; //显示log
|
||||
|
public string Sys_machine //通知UI控件参数改变
|
||||
|
{ |
||||
|
get { return sys_machine; } |
||||
|
set { sys_machine = value; OnPropertyChanged("Sys_machine"); } |
||||
|
} |
||||
|
public static bool TechnologicalProcess_bool = true; |
||||
|
private async void DATA_view()//IO显示
|
||||
|
{ |
||||
|
await Task.Run(() => |
||||
|
{ |
||||
|
|
||||
|
|
||||
|
try |
||||
|
{ |
||||
|
TechnologicalMachine_View = ToObservableCollection<TechnologicalM>(Machines); |
||||
|
} |
||||
|
catch (Exception) { } |
||||
|
|
||||
|
try |
||||
|
{ |
||||
|
if (dt_TP.Rows.Count >= 0) |
||||
|
{ |
||||
|
if (TechnologicalProcess_bool) TechnologicalProcess_View = ToObservableCollection<TechnologicalP>(dt_TP); |
||||
|
Sys_machine = MachineLOG; |
||||
|
} |
||||
|
} |
||||
|
catch (Exception) { } |
||||
|
}); |
||||
|
} |
||||
|
ObservableCollection<TechnologicalP> technologicalProcess_View = new ObservableCollection<TechnologicalP>(); |
||||
|
ObservableCollection<TechnologicalM> technologicalMachine_View = new ObservableCollection<TechnologicalM>(); |
||||
|
public ObservableCollection<TechnologicalP> TechnologicalProcess_View |
||||
|
{ |
||||
|
get { return technologicalProcess_View; } |
||||
|
set |
||||
|
{ |
||||
|
technologicalProcess_View = value; |
||||
|
RaisePropertyChanged("TechnologicalProcess_View"); |
||||
|
} |
||||
|
} |
||||
|
public ObservableCollection<TechnologicalM> TechnologicalMachine_View |
||||
|
{ |
||||
|
get { return technologicalMachine_View; } |
||||
|
set |
||||
|
{ |
||||
|
technologicalMachine_View = value; |
||||
|
RaisePropertyChanged("TechnologicalMachine_View"); |
||||
|
} |
||||
|
} |
||||
|
public class TechnologicalM |
||||
|
{ |
||||
|
public string Name { get; set; } |
||||
|
public string WorkOrder { get; set; } |
||||
|
public string Dyelot { get; set; } |
||||
|
public string Temperature { get; set; } |
||||
|
public string WaterLevel { get; set; } |
||||
|
public string Process { get; set; } |
||||
|
public string Step { get; set; } |
||||
|
public string Message { get; set; } |
||||
|
public string State { get; set; } |
||||
|
|
||||
|
} |
||||
|
public class TechnologicalP |
||||
|
{ |
||||
|
public string ProgramID { get; set; } |
||||
|
public string Program { get; set; } |
||||
|
public double Step { get; set; } |
||||
|
public string StepID { get; set; } |
||||
|
public string StepName { get; set; } |
||||
|
public string ParameterName { get; set; } |
||||
|
public string Parameter1 { get; set; } |
||||
|
public string Parameter2 { get; set; } |
||||
|
public string Parameter3 { get; set; } |
||||
|
public string Parameter4 { get; set; } |
||||
|
public string Parameter5 { get; set; } |
||||
|
public string DYELOT { get; set; } |
||||
|
} |
||||
|
|
||||
|
public ObservableCollection<T> ToObservableCollection<T>(DataTable dt) where T : class, new() |
||||
|
{ |
||||
|
Type t = typeof(T); |
||||
|
PropertyInfo[] propertys = t.GetProperties(); |
||||
|
ObservableCollection<T> lst = new ObservableCollection<T>(); |
||||
|
string typeName = string.Empty; |
||||
|
foreach (DataRow dr in dt.Rows) |
||||
|
{ |
||||
|
T entity = new T(); |
||||
|
foreach (PropertyInfo pi in propertys) |
||||
|
{ |
||||
|
typeName = pi.Name; |
||||
|
if (dt.Columns.Contains(typeName)) |
||||
|
{ |
||||
|
if (!pi.CanWrite) continue; |
||||
|
object value = dr[typeName]; |
||||
|
if (value == DBNull.Value) continue; |
||||
|
if (pi.PropertyType == typeof(string)) |
||||
|
{ |
||||
|
pi.SetValue(entity, value.ToString(), null); |
||||
|
} |
||||
|
else if (pi.PropertyType == typeof(int) || pi.PropertyType == typeof(int?)) |
||||
|
{ |
||||
|
pi.SetValue(entity, int.Parse(value.ToString()), null); |
||||
|
} |
||||
|
else if (pi.PropertyType == typeof(DateTime?) || pi.PropertyType == typeof(DateTime)) |
||||
|
{ |
||||
|
pi.SetValue(entity, DateTime.Parse(value.ToString()), null); |
||||
|
} |
||||
|
else if (pi.PropertyType == typeof(float)) |
||||
|
{ |
||||
|
pi.SetValue(entity, float.Parse(value.ToString()), null); |
||||
|
} |
||||
|
else if (pi.PropertyType == typeof(double)) |
||||
|
{ |
||||
|
pi.SetValue(entity, double.Parse(value.ToString()), null); |
||||
|
} |
||||
|
else |
||||
|
{ |
||||
|
pi.SetValue(entity, value, null); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
lst.Add(entity); |
||||
|
} |
||||
|
return lst; |
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue