current position:Home>Problems related to the use of C PropertyGrid

Problems related to the use of C PropertyGrid

2022-02-02 15:02:51 CSDN Q & A

img

 public class Cavity    {        public double X { get; set; }        public double Y { get; set; }        public double Angle { get; set; }        public override string ToString()        {            return X.ToString() + "," + Y.ToString() + "," + Angle.ToString();        }    }    public class Setting    {        protected ConcurrentDictionary<string, string> settingMap = new ConcurrentDictionary<string, string>();        private Cavity _cavity = new Cavity();        [TypeConverter(typeof(ExpandableObjectConverter))]        public Cavity Cavity1        {            get            {                //return _cavity;                return ConvertStr2Object(settingMap["Cavity1"], ',');            }            set            {                //_cavity = value;                settingMap["Cavity1"] = ConvertObject2Str(value, ',');            }        }}

I need to modify X、Y、Angle Corresponding execution Cavity1 Low Set, But it can't be implemented in practice , Setting Low Cavity There will also be multiple properties , such as Cavity2,Cavity3 etc. Help me see how to solve it thank you




Refer to the answer 1:

Solve the above problems , What I'm thinking is a clever way

img

namespace Paramsss{    [TypeConverter(typeof(ExpandableObjectConverter))]    public class Cavity    {        public Cavity(string str)        {            Name = str;        }        [Browsable(false)]        public string Name { get; set; }        public double X        {            get            {                return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',',0);            }            set            {                Globals.Setting1.settingMap[Name] =Globals.Setting1.ConvertDouble2Str(value,Y,Angle,',');                ToString();            }        }        public double Y        {            get            {                return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',', 1);            }            set            {                Globals.Setting1.settingMap[Name] = Globals.Setting1.ConvertDouble2Str(X, value, Angle, ',');                ToString();            }        }        public double Angle        {            get            {                return Globals.Setting1.ConvertStr2Double(Globals.Setting1.settingMap[Name], ',', 2);            }            set            {                Globals.Setting1.settingMap[Name] = Globals.Setting1.ConvertDouble2Str(X, Y, value, ',');                ToString();            }        }        public override string ToString()        {            return "X="+X.ToString() + ", Y=" + Y.ToString() + ", Angle=" + Angle.ToString();        }            }    public class Setting    {        private Cavity _cavity1 = new Cavity("Cavity1");        private Cavity _cavity2 = new Cavity("Cavity2");        private Cavity _cavity3 = new Cavity("Cavity3");        private Cavity _cavity4 = new Cavity("Cavity4");        private Cavity _cavity5 = new Cavity("Cavity5");        private Cavity _cavity6 = new Cavity("Cavity6");        private Cavity _cavity7 = new Cavity("Cavity7");        private Cavity _cavity8 = new Cavity("Cavity8");        public Cavity Cavity1        {            get            {                return _cavity1;            }            set            {                _cavity1 = value;            }        }        public Cavity Cavity2        {            get            {                return _cavity2;            }            set            {                _cavity2 = value;            }        }        public Cavity Cavity3        {            get            {                return _cavity3;            }            set            {                _cavity3 = value;            }        }        public Cavity Cavity4        {            get            {                return _cavity4;            }            set            {                _cavity4 = value;            }        }        public Cavity Cavity5        {            get            {                return _cavity5;            }            set            {                _cavity5 = value;            }        }        public Cavity Cavity6        {            get            {                return _cavity6;            }            set            {                _cavity6 = value;            }        }        public Cavity Cavity7        {            get            {                return _cavity7;            }            set            {                _cavity7 = value;            }        }        public Cavity Cavity8        {            get            {                return _cavity8;            }            set            {                _cavity8 = value;            }        }        public ConcurrentDictionary<string, string> settingMap = new ConcurrentDictionary<string, string>();       public double ConvertStr2Double(string str, char c, int v)        {            try            {                string[] ss = str.Split(c);                    return Convert.ToDouble(ss[v]);            }            catch            {                return 0;            }        }        public string ConvertDouble2Str(double x, double y, double angle, char c)        {            try            {                return x.ToString() + c + y.ToString() + c + angle.ToString();            }            catch            {                return "";            }        }    }



Refer to the answer 2:



Refer to the answer 3:

Hello , I am a little assistant who answers every question , So sorry , This time, you have to answer all your questions , The panel of technical experts timed out and did not answer for you


The number of times to answer all questions deducted from this question , Will answer with questions VIP Experience card (1 A chance to answer every question 、 Shopping malls buy physical books and enjoy 95 A discount ) It will be reissued to your account in the form of .


Because all questions must be answered VIP The experience card is only valid for 1 God , When you need it 【 Direct messages 】 Contact me , I'll reissue it for you .




Refer to the answer 4:

copyright notice
author[CSDN Q & A],Please bring the original link to reprint, thank you.
https://en.primo.wiki/2022/02/202202021502497337.html

Random recommended