【发布时间】:2014-06-21 17:56:43
【问题描述】:
我有一个枚举,我使用它的值作为组合框中的选项。
枚举是这样的:
public enum TimeSizeEnum
{
TENTHSECONDS,
SECONDS,
MINUTES,
HOURS
}
我将值绑定到组合框的方式:
<ComboBox Grid.Row="4" Grid.Column="1" ItemsSource="{Binding Path=TimeSizeItemsSource, Converter={StaticResource TimerSizeConverter}}" SelectedItem="{Binding Path=TimeSize, Mode=TwoWay}" SelectedIndex="0" Margin="5" MinWidth="100"></ComboBox>
public string[] TimeSizeItemsSource
{
get
{
return Enum.GetNames(typeof(TimeSizeEnum));
}
}
我想用 TENTHSECONDS 代替 "Tenth of a second" 或 SECONDS 代替 "Seconds"。
我怎样才能做到这一点?价值转换器是最好的方法吗?但这意味着我需要对我想要的字符串进行硬编码?
【问题讨论】:
-
答案的替代方法是使用 ValueConverter 和资源字典。考虑stackoverflow.com/questions/2787725/…
-
我对所有枚举都使用了标记扩展,但它们使用的描述和类别属性很像值转换器。