From 8cbf4a6b9f334246d88c8101ae3db9a21f1bab3f Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期三, 28 四月 2021 11:40:08 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- 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