在模型层中,我定义了一个枚举:
public enum MemberStatus
{
ActiveMember = 0,
InactiveMember = 1,
Associate = 2,
BoardMember = 3,
Alumni = 4
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我有一个组合框,其中填充了这些枚举值:
<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}" />
...
Run Code Online (Sandbox Code Playgroud)
这导致组合框的选择与枚举中定义的值完全相同.虽然这是我最初的目标,但我希望为用户提供更好的演示,如下所示:
此外,如果应用程序中的语言发生更改,我需要使用该语言的枚举值.为了解决这个问题,我想到的第一件事就是为MemberStatus枚举值创建一个转换器.我在这个主题上发现了这篇美丽的文章:http://www.codeproject.com/KB/WPF/FriendlyEnums.aspx但是MVVM模式表明根本不应该创建它们 - 我同意这一点.但是,在这个例子中,这种肯定对我没有用.
它应该如何完成?谢谢.
| 归档时间: |
|
| 查看次数: |
3872 次 |
| 最近记录: |