2016-08-18 32 views
0

我有一个绑定到一些枚举类型的组合框。我想知道如何为枚举项目添加空间。我试图使用转换器,但失败了。 枚举类型是这样如何在UWP中的组合框内添加项目的空间?

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

我想组合框显示类似“两个星期”,而不是TwoWeeks

回答

0

你有几个选项,

添加[Description]属性,然后把它拿来在需要的时候:

[Description("Two weeks")] 
TwoWeeks = 0 

在Unity中实现一些方法,如ObjectNames.NicifyVariableName

+0

添加[说明]似乎不适合我的情况下工作,但我做的是包含枚举和描述字符串,然后写一个转换器来实现同样的效果类。使用集合而不是枚举。谢谢! – litaoshen

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