display int value from enum
本问题已经有最佳答案,请猛点这里访问。
我有一个propertygrid,我需要在propertygrid中创建一个组合框并显示int值(1到9),我发现使用枚举是最简单的方法,但枚举无法显示int值,即使我试图将其强制转换为int,但我不知道如何返回所有值。还有别的办法吗?事先谢谢。下面是我的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public class StepMode { private TotalSteps totalSteps; public TotalSteps totalsteps { get { return totalSteps; } set { value = totalSteps; } } public enum TotalSteps { First = 1, Second = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9 } } |
要获取枚举的所有值,请尝试此操作
1 |
您的totalSteps属性应该如下所示
1 2 3 4 | public int[] totalSteps { get { return Enum.GetValues(typeof(TotalSteps)).Cast<int>().ToArray(); } } |
应生成返回int而不是totalSteps的属性
你在做这个
1 2 3 4 5 6 7 | private TotalSteps totalSteps; public TotalSteps totalsteps { get { return totalSteps; } set { value = totalSteps; } } |
我建议你这么做
1 2 3 4 5 6 7 8 | private TotalSteps totalSteps; private int totalStepsInInt; public int TotalstepsInInt { get { return totalStepsInInt; } set { totalStepsInInt = value; } } |
在设置这个属性时,你必须通过这样做来转换int中的totalsteps。
1 | `TotalStepsInInt = (int)totalSteps;` |
how can I return it in"get" function? the value cannot be converted
属性(我猜)被定义为获取/设置选定的枚举值,因此当类型为totalsteps时,不能返回int。
我建议在
1 2 3 4 | public int Step { get {return (int)totalsteps; } } |
既然您提到(作为注释)您希望所有int值绑定到
1 2 3 4 | public List<int< ComboValues { get { return Enum.GetValues(typeof(TotalSteps)).Cast<int>().ToList(); } } |