using HMI.Core.Manager;
using System;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows;
using System.Windows.Controls;
namespace HMI.StdControl
{
///
/// StdEnableMes.xaml 的交互逻辑
///
public partial class StdEnableMes : UserControl, INotifyPropertyChanged
{
#region ...
public virtual event PropertyChangedEventHandler PropertyChanged;
protected virtual void Set([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
protected void Set(ref T old, T @new, [CallerMemberName] string propertyName = null)
{
old = @new;
if (propertyName != null)
{
Set(propertyName);
}
}
#endregion
private event EventHandler valueChanged;
public event EventHandler ValueChanged
{
add
{
valueChanged += value;
}
remove
{
valueChanged -= value;
}
}
public static DependencyProperty CbEnabledProperty = DependencyProperty.Register(
"CbEnabled",
typeof(bool),
typeof(StdEnableMes),
new FrameworkPropertyMetadata(true));
public bool CbEnabled
{
get => (bool)GetValue(CbEnabledProperty);
set
{
SetValue(CbEnabledProperty, value);
}
}
private bool enableMes;
public bool EnableMes
{
get => enableMes;
set
{
if (WriteConfig("EnableMes", value))
{
Set(ref enableMes, value);
}
Set(ref enableMes, value);
}
}
public StdEnableMes()
{
DataContext = this;
InitializeComponent();
try
{
var value = ParameterManager.GetCommonParameterByName("EnableMes");
if (value == null)
{
this.Visibility = System.Windows.Visibility.Collapsed;
}
else
{
enableMes = bool.Parse(value.Value);
Set("EnableMes");
}
}
catch
{
enableMes = false;
Set("EnableMes");
}
}
private bool WriteConfig(string name, bool value)
{
try
{
valueChanged?.Invoke(this, new StdUIEventArg()
{
StringValue = name,
BoolValue = value
});
return ParameterManager.UpdateCommonParameter(name, value, out string errMsg);
}
catch (Exception ex)
{
return false;
}
}
}
}