From 2e889843b4c171f2d6ad8e0d53084040703d11f6 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 13:18:21 +0800
Subject: [PATCH] docs: CAN 总线级应答器 + 硬件调试页多标签多会话 设计规格

---
 HMI.SettingControl/SettingControl.xaml.cs |  142 +++++++++++++++++++++++++++--------------------
 1 files changed, 82 insertions(+), 60 deletions(-)

diff --git a/HMI.SettingControl/SettingControl.xaml.cs b/HMI.SettingControl/SettingControl.xaml.cs
index 6390b40..322c614 100644
--- a/HMI.SettingControl/SettingControl.xaml.cs
+++ b/HMI.SettingControl/SettingControl.xaml.cs
@@ -1,11 +1,11 @@
-锘縰sing System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Runtime.CompilerServices;
+锘縰sing HMI.Base;
+using HMI.Core.Api;
+using HMI.Core.Util;
+using HMI.UI.Util;
+using System;
+using System.Collections.ObjectModel;
 using System.Windows;
 using System.Windows.Controls;
-using HMI.Base;
-using HMI.Core.Api;
-using log4net;
 
 namespace HMI.SettingControl
 {
@@ -14,62 +14,13 @@
     /// </summary>
     public partial class SettingControl : PluginControl
     {
-        #region ...
-        public virtual event PropertyChangedEventHandler PropertyChanged;
-
-        protected virtual void Set(string name)
-        {
-
-            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
-        }
-
-        protected void Set<T>(ref T old, T @new, [CallerMemberName] string propertyName = null)
-        {
-            old = @new;
-            if (propertyName != null)
-            {
-                Set(propertyName);
-            }
-        }
-        #endregion
-
         #region 灞炴��
-        private ILog log;
         private ObservableCollection<TabItem> tabItems;
 
         public ObservableCollection<TabItem> TabItems
         {
             get { return tabItems; }
             set { Set(ref tabItems, value); }
-        }
-
-        #endregion
-
-        #region PluginApi
-
-        public object Init()
-        {
-            return null;
-        }
-
-        public object Active()
-        {
-            return null;
-        }
-
-        public object DeActive()
-        {
-            return null;
-        }
-
-        public void OnTabChange(object sender, object args)
-        {
-
-        }
-
-        public void SetLogger(ILog logger)
-        {
-            log = logger;
         }
         #endregion
 
@@ -81,12 +32,14 @@
 
         private void UserControl_Loaded(object sender, RoutedEventArgs e)
         {
+            var item = new TabItem
+            {
+                Content = new SystemConfig()
+            };
+            item.SetValue(TabItem.HeaderProperty, new DynamicResourceExtension("Setting.SystemSetting").ProvideValue(null));
+
             TabItems = new ObservableCollection<TabItem>() {
-                new TabItem
-                {
-                    Header = "绯荤粺璁剧疆",
-                    Content = new SystemConfig()
-                }
+               item
             };
             foreach (var d in PluginLoader.Instance.Plugins)
             {
@@ -98,7 +51,76 @@
                     Content = d.SettingControl
                 });
             }
+            tabControl.SelectedIndex = 0;
             Loaded -= UserControl_Loaded;
         }
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            Button btn = sender as Button;
+            switch (btn.Name)
+            {
+                case "resetBtn":
+                    ResetCurrentConfig();
+                    break;
+                case "saveBtn":
+                    SaveAllConfig();
+                    break;
+                default:
+                    break;
+            }
+        }
+
+        private void SaveAllConfig()
+        {
+            foreach (var d in tabControl.ItemsSource)
+            {
+                if (!(d is TabItem tabItem)) continue;
+                if (tabItem.Content is IConfigManager manager)
+                {
+                    try
+                    {
+                        manager.SaveConfig();
+                        this.Success(this.lang("App.SaveSuccess"));
+                    }
+                    catch (Exception ex)
+                    {
+                        MsgBoxHelper.Error(this, $"{tabItem.Header}{this.lang("App.SaveFailed")}: {ex.Message}");
+                    }
+                }
+            }
+        }
+
+        private void SaveCurrentConfig()
+        {
+            var content = tabControl.SelectedItem as TabItem;
+            if (content is IConfigManager manager)
+            {
+                try
+                {
+                    manager.SaveConfig();
+                }
+                catch (Exception ex)
+                {
+                    MsgBoxHelper.Error(this, $"{this.lang("App.SaveFailed")}: {ex.Message}");
+                }
+            }
+        }
+
+        private void ResetCurrentConfig()
+        {
+            var tabItem = tabControl.SelectedItem as TabItem;
+            if (tabItem.Content is IConfigManager manager)
+            {
+                try
+                {
+                    manager.ResetConfig();
+                }
+                catch (Exception ex)
+                {
+                    MsgBoxHelper.Error(this, $"{this.lang("App.SaveFailed")}: {ex.Message}");
+                }
+            }
+        }
     }
 }

--
Gitblit v1.9.1