alielie
2026-06-04 771a0e7b6b1276087515bbe94de28358cb92963b
HMI.ParameterManage/ParameterSetting.xaml.cs
@@ -1,7 +1,8 @@
using HMI.Base;
using HMI.Core.Entity;
using HMI.Core.Manager;
using HMI.Core.Setting;
using HMI.Core.Util;
using HMI.ParameterManage.Entity;
using HMI.ParameterManage.Util;
using HMI.UI.Util;
using HMI.Util;
using Microsoft.Win32;
@@ -11,7 +12,6 @@
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Markup;
namespace HMI.ParameterManage
{
@@ -30,6 +30,8 @@
                Set(ref datasource, value);
            }
        }
        public List<string> groups = new List<string>();
        public ParameterSetting()
        {
@@ -78,10 +80,12 @@
            {
                Datasource = ParameterManager.GetCommonParameter<ObservableCollection<ParameterData>>()
                ?? new ObservableCollection<ParameterData>();
                groups = Datasource.Where(d => !string.IsNullOrEmpty(d.ShowGroup)).Select(d => d.ShowGroup).Distinct().ToList();
            }
            catch (Exception ex)
            {
                Datasource = new ObservableCollection<ParameterData>();
                groups = new List<string>();
                log.Error("Refresh Data Failed.", ex);
                ToastHelper.Error(Window.GetWindow(this), $"{this.lang("App.RefreshFailed")}: {ex.Message}");
            }
@@ -102,7 +106,7 @@
                    Title = title,
                    Owner = Window.GetWindow(this)
                };
                if (modal.Open(data ?? new ParameterData(), Datasource) == true)
                if (modal.Open(data ?? new ParameterData(), Datasource, groups) == true)
                {
                    if (index == -1)
                    {
@@ -244,5 +248,21 @@
            Loaded -= UserControl_Loaded;
        }
        public override bool CanActive()
        {
            if (ParamSetting.IsOptRequirePassword)
            {
                var win = new RequirePasswordWindow
                {
                    Owner = Window.GetWindow(this),
                    WindowStartupLocation = WindowStartupLocation.CenterScreen
                };
                return win.ShowDialog() == true;
            }
            else
            {
                return true;
            }
        }
    }
}