From 27ec4a74d3ed9aa8ce1ee8e5d0955596c67cb996 Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期一, 13 七月 2020 18:36:39 +0800
Subject: [PATCH] Excel追加 +设置样式做好了

---
 src/Bro.Common.Model/Model/IOItem.cs |   33 +++++++++++++++++++++------------
 1 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/src/Bro.Common.Model/Model/IOItem.cs b/src/Bro.Common.Model/Model/IOItem.cs
index 4b59a7c..5610aaf 100644
--- a/src/Bro.Common.Model/Model/IOItem.cs
+++ b/src/Bro.Common.Model/Model/IOItem.cs
@@ -22,8 +22,9 @@
         /// IO鐐圭殑鍊�
         /// </summary>
         [Category("IO閰嶇疆")]
-        [Description("IO鏁板��")]
-        public virtual int Value { get; set; }
+        [Description("IO鐘舵��")]
+        [TypeConverter(typeof(EnumDescriptionConverter<IOValue>))]
+        public virtual IOValue Value { get; set; }
 
         /// <summary>
         /// IO鐐规槸in杩樻槸out
@@ -42,9 +43,9 @@
             return false;
         }
 
-        public string GetDisplayText()
+        public virtual string GetDisplayText()
         {
-            return $"{IOType.GetEnumDescription()}-{IONum}-{Value}";
+            return $"{IOType.GetEnumDescription()}-{IONum}-{Value.GetEnumDescription()}";
         }
 
         public int GetHashCode(object obj)
@@ -56,6 +57,11 @@
     public class IODefinition : IOItem
     {
         [Category("IO閰嶇疆")]
+        [Description("IO棰勫畾涔�")]
+        [TypeConverter(typeof(EnumDescriptionConverter<IOPrestatement>))]
+        public IOPrestatement IOPreStatement { get; set; } = IOPrestatement.Customized;
+
+        [Category("IO閰嶇疆")]
         [Description("IO鐢ㄩ�旀弿杩�")]
         public string IODesc { get; set; }
 
@@ -65,11 +71,11 @@
 
         [Browsable(false)]
         [JsonIgnore]
-        public override int Value { get; set; }
+        public override IOValue Value { get; set; }
 
-        public new string GetDisplayText()
+        public override string GetDisplayText()
         {
-            return $"{IODesc} {IOType.GetEnumDescription()} {IONum}";
+            return $"{(IOPreStatement == IOPrestatement.Customized ? IODesc : IOPreStatement.GetEnumDescription())} {IOType.GetEnumDescription()} {IONum}";
         }
     }
 
@@ -81,8 +87,8 @@
         public IODefinition IOItem { get; set; } = new IODefinition();
 
         [Category("IO鎿嶄綔閰嶇疆")]
-        [Description("闇�瑕佹搷浣滅殑IO鐨勬暟鍊�")]
-        public int CheckValue
+        [Description("闇�瑕佹搷浣滅殑IO鐨勭姸鎬�")]
+        public IOValue CheckValue
         {
             get => IOItem.Value;
             set => IOItem.Value = value;
@@ -94,7 +100,7 @@
 
         public string GetDisplayText()
         {
-            return IOItem.IODesc + "-" + CheckValue;
+            return IOItem.IODesc + "-" + CheckValue.GetEnumDescription();
         }
     }
 
@@ -103,11 +109,14 @@
         Dictionary<IODefinition, string> itemDict = new Dictionary<IODefinition, string>();
         public override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
         {
+            itemDict.Clear();
             if (context.Instance is IORefrenceItem item)
             {
                 item.IOItemSource.ForEach(i =>
                 {
-                    itemDict[i] = i.IODesc + "-" + i.IOType.GetEnumDescription() + "-" + i.IONum;
+                    IODefinition temp = new IODefinition();
+                    temp.DataFrom(i);
+                    itemDict[temp] = (string.IsNullOrWhiteSpace(i.IODesc) ? i.IOPreStatement.GetEnumDescription() : i.IODesc) + "|" + i.IOType.GetEnumDescription() + "|" + i.IONum;
                 });
 
                 return new StandardValuesCollection(itemDict.Keys);
@@ -152,7 +161,7 @@
         /// <returns></returns>
         public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
         {
-            var s = value.ToString().Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries);
+            var s = value.ToString().Split(new char[] { '|' });
 
             if (s.Length == 3)
             {

--
Gitblit v1.8.0