如何在UWP中为ComboBox内的项添加空间?

时间:2016-08-18 21:30:43

标签: c# combobox enums uwp uwp-xaml

我有一个绑定到某些枚举类型的ComboBox。我想知道如何为枚举项添加空间。我试图使用转换器,但失败了。 枚举类型就像这样

public enum MaxEEAge
{
    TwoWeeks = 0,
    OneMonth = 1,
    ThreeMonths = 2,
    SixMonths = 3,
    All = 4,
}

我希望ComboBox显示类似“Two Weeks”而不是TwoWeeks

2 个答案:

答案 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; } }