From d9807295fad0ca4781cdacd4c16f1e6f0765d5cc Mon Sep 17 00:00:00 2001
From: wells.liu <wells.liu@broconcentric.com>
Date: 星期一, 07 九月 2020 12:09:28 +0800
Subject: [PATCH] io 界面滚动

---
 src/Bro.Common.Model/Model/IOItem.cs |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/src/Bro.Common.Model/Model/IOItem.cs b/src/Bro.Common.Model/Model/IOItem.cs
index 147880e..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
@@ -44,7 +45,7 @@
 
         public virtual string GetDisplayText()
         {
-            return $"{IOType.GetEnumDescription()}-{IONum}-{Value}";
+            return $"{IOType.GetEnumDescription()}-{IONum}-{Value.GetEnumDescription()}";
         }
 
         public int GetHashCode(object obj)
@@ -70,7 +71,7 @@
 
         [Browsable(false)]
         [JsonIgnore]
-        public override int Value { get; set; }
+        public override IOValue Value { get; set; }
 
         public override string GetDisplayText()
         {
@@ -86,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;
@@ -99,7 +100,7 @@
 
         public string GetDisplayText()
         {
-            return IOItem.IODesc + "-" + CheckValue;
+            return IOItem.IODesc + "-" + CheckValue.GetEnumDescription();
         }
     }
 
@@ -108,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);
@@ -157,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