alielie
2026-03-02 12e606635c42ea20f4b7c2bdda5204237a4b4c96
HMI.AlermInfoManage/Modal/AlarmSettingModal.xaml.cs
@@ -1,7 +1,8 @@
using HMI.AlarmInfoManage.Entity;
using HMI.Core.Entity;
using HMI.Core.Util;
using HMI.UI.DpUtil;
using HMI.UI.Util;
using HMI.Util.Alarm;
using log4net;
using Panuon.WPF.UI;
using System;
@@ -24,7 +25,7 @@
            InitializeComponent();
        }
        private ILog log;
        public string FilePath { get; private set; }
        private bool isBlock;
        public int DataIndex { get; private set; }
        public AlarmSetting Data { get; private set; }
        public ObservableCollection<AlarmSetting> Datasource { get; private set; }
@@ -73,7 +74,8 @@
        public bool ValidateDBAddress(object value, out string err)
        {
            err = null;
            if (Datasource?.FirstOrDefault(e => e.DBAddress == value) != null)
            var target = Datasource?.FirstOrDefault(e => e.DBAddress == value);
            if (target != null && target != Data)
            {
                err = this.lang("App.MustBeUnique", this.lang("Alm.DbAddress"));
                return false;
@@ -89,23 +91,26 @@
                Data.DBAddress = dbAddress.Text;
                Data.StartAddress = startAddress.Text;
                Data.Length = Convert.ToInt32(length.Value);
                Data.AlarmCode = TbCode.Text;
                Data.Level = NiLevel.Value ?? 0d;
                Data.Description = TbDesc.Text;
            }
            return flag;
        }
        public bool? Open(int index, AlarmSetting data,
            ObservableCollection<AlarmSetting> dataSource,
            string filePath, bool showDescription)
            ObservableCollection<AlarmSetting> dataSource, bool isBlock)
        {
            FgDesc.Visibility = showDescription ? Visibility.Visible : Visibility.Collapsed;
            FilePath = filePath;
            this.isBlock = isBlock;
            FgCode.Visibility = isBlock ? Visibility.Visible : Visibility.Collapsed;
            DataIndex = index;
            Data = data;
            Datasource = dataSource;
            dbAddress.Text = Data.DBAddress;
            startAddress.Text = Data.StartAddress;
            length.Value = Data.Length;
            TbCode.Text = Data.AlarmCode;
            NiLevel.Value = Data.Level;
            TbDesc.Text = Data.Description;
            return this.ShowDialog();
        }
@@ -125,13 +130,27 @@
        public void InsertData(AlarmSetting data)
        {
            Datasource.Add(data);
            XmlHelper.SerializeToXml(FilePath, Datasource);
            if (this.isBlock)
            {
                AlarmUtil.UpdateBlockSettings(Datasource);
            }
            else
            {
                AlarmUtil.UpdateMarkSettings(Datasource);
            }
        }
        public void UpdateData(int index, AlarmSetting data)
        {
            Datasource[index] = data;
            XmlHelper.SerializeToXml(FilePath, Datasource);
            if (this.isBlock)
            {
                AlarmUtil.UpdateBlockSettings(Datasource);
            }
            else
            {
                AlarmUtil.UpdateMarkSettings(Datasource);
            }
        }
    }
}