From 0940f31b7eba1cf6b6a8c1fca72d97cf686e79f2 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期五, 04 七月 2025 10:43:00 +0800
Subject: [PATCH] 优化插件,完善TreeListView

---
 HMI.UI/DpUtil/FormGroupHelper.cs |   27 ++++++++++++++-------------
 1 files changed, 14 insertions(+), 13 deletions(-)

diff --git a/HMI.UI/DpUtil/FormGroupHelper.cs b/HMI.UI/DpUtil/FormGroupHelper.cs
index 245a054..01f6223 100644
--- a/HMI.UI/DpUtil/FormGroupHelper.cs
+++ b/HMI.UI/DpUtil/FormGroupHelper.cs
@@ -1,11 +1,9 @@
-锘縰sing System;
-using System.ComponentModel;
+锘縰sing HMI.Core.Util;
+using Panuon.WPF.UI;
 using System.Windows;
 using System.Windows.Controls;
-using Panuon.WPF.UI;
-using Panuon.WPF.UI.Configurations;
 
-namespace HMI.UI
+namespace HMI.UI.DpUtil
 {
     public class FormGroupHelper
     {
@@ -24,15 +22,14 @@
             new PropertyMetadata(false, (d, e) =>
             {
                 if (!(d is FormGroup fg)) return;
-                if ((bool)e.NewValue)
+                if ((bool)e.NewValue && !string.IsNullOrEmpty(fg.Header?.ToString()))
                 {
-                    var style = Application.Current.FindResource("RequiredInputFormGroupStyle") as Style;
-                    fg.Style = style;
+                    var dataTemplate = Application.Current.FindResource("RequiredFormHeader") as DataTemplate;
+                    fg.HeaderTemplate = dataTemplate;
                 }
                 else
                 {
-                    var style = Application.Current.FindResource("RequiredInputFormGroupStyle") as Style;
-                    fg.Style = style;
+                    fg.HeaderTemplate = null;
                 }
             }));
 
@@ -60,12 +57,14 @@
             {
                 if (child is FormGroup fg)
                 {
+                    fg.ValidateResult = ValidateResult.None;
+                    fg.Message = null;
                     object content = fg.Content;
                     object value = GetValidateValue(content);
-                    if (GetIsRequired(fg) && string.IsNullOrEmpty(value.ToString()))
+                    if (GetIsRequired(fg) && (value == null || string.IsNullOrEmpty(value.ToString())))
                     {
                         fg.ValidateResult = ValidateResult.Error;
-                        fg.Message = $"{fg.Header}涓嶈兘涓虹┖";
+                        fg.Message = string.Format(LangUtil.Get("App.CantBeEmpty"), fg.Header);
                         res = false;
                     }
                     else
@@ -90,9 +89,11 @@
                 return elementCollection.Count > 0 ? GetValidateValue(elementCollection[0]) : null;
             if (content is TextBox tb) return tb.Text;
             if (content is CheckBox cb) return cb.IsChecked;
-            if (content is ComboBox cBox) return cBox.Text;
+            if (content is ComboBox cBox) return cBox.SelectedItem ?? cBox.SelectedValue ?? cBox.Text;
 
             if (content is Panel panel) return GetValidateValue(panel.Children);
+            if (content is Panuon.WPF.UI.NumberInput numberInput) return numberInput.Value;
+            if (content is PasswordBox passwordInput) return passwordInput.Password;
             return null;
         }
     }

--
Gitblit v1.9.1