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; } } } }