我有一个绑定到某些枚举类型的ComboBox。我想知道如何为枚举项添加空间。我试图使用转换器,但失败了。 枚举类型就像这样
public enum MaxEEAge
{
TwoWeeks = 0,
OneMonth = 1,
ThreeMonths = 2,
SixMonths = 3,
All = 4,
}
我希望ComboBox显示类似“Two Weeks”而不是TwoWeeks
答案 0 :(得分:0)
你有几个选择,
添加[Description]
属性,然后在需要时获取它:
[Description("Two weeks")]
TwoWeeks = 0
或
在Unity中实施一些像ObjectNames.NicifyVariableName这样的方法。
答案 1 :(得分:0)
使用集合而不是像这样的枚举
public class MaxXXAgeMembers
{
public MaxXXAge MaxXXAge { get; private set; }
public string Description { get; private set; }
public static readonly IReadOnlyList<MaxXXAgeMembers> Options = new ReadOnlyCollection<MaxXXAgeMembers>(new[]
{
new MaxXXAgeMembers { MaxXXAge = MaxXXAge.OneDay, Description = Strings.SettingSync_OneDay},
.......
});
public static MaxXXAgeMembers FromMaxXXAge(MaxXXAge maxXXAge)
{
return Options.First(option => option.MaxXXAge == maxXXAge);
}
}
使用FromMaxXXAge编写自己的转换器,很容易实现这一点。
绑定到此
public IReadOnlyList<MaxXXAgeMembers> MaxXXAgeMemberGroup { get { return MaxXXAgeMembers.Options; } }