在模型层,我定义了一个枚举:
这将导致得到一个带有下拉框的选项,这些选项与枚举中定义的值完全相同。虽然这是我的最初目标,但我希望为用户提供更好的展示效果,例如:
应该如何处理?谢谢。
public enum MemberStatus
{
ActiveMember = 0,
InactiveMember = 1,
Associate = 2,
BoardMember = 3,
Alumni = 4
}
在我的看法中,我有一个下拉框,其中填充了这些枚举值:
<UserControl.Resources>
<ObjectDataProvider
x:Key="memberStatusesDataProvider"
ObjectType="{x:Type system:Enum}"
MethodName="GetValues">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="model:MemberStatus" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
...
<ComboBox
ItemsSource="{Binding Source={StaticResource memberStatusesDataProvider}}"
SelectedItem="{Binding Path=Status}" />
...
这将导致得到一个带有下拉框的选项,这些选项与枚举中定义的值完全相同。虽然这是我的最初目标,但我希望为用户提供更好的展示效果,例如:
- 下拉框选项:
- 活跃成员
- 非活跃成员
- 联合会员
- 董事会成员
- 校友
MemberStatus
枚举值转换器。我在这个话题上找到了这篇优秀的文章:http://www.codeproject.com/KB/WPF/FriendlyEnums.aspx 但MVVM模式认为几乎不需要创建它们 - 我同意这个说法。然而,在这个例子中,这个说法并不适用于我。应该如何处理?谢谢。
MemberStatus
和AvailableMemberStatus
。AvailableMemberStatus
将扩展List<MemberStatus>
并在构造函数中初始化自身。可以实现为单例形式。 - Greg Sansom