На уровне модели я определил перечисление:
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
enum.Я нашел эту прекрасную статью на эту тему: http://www.codeproject.com/KB/WPF/FriendlyEnums.aspx Но паттерн MVVM говорит о том, что почти не нужно их создавать - и я согласен с этим.Тем не менее, это утверждение не работает в мою пользу в этом примере.
Как это должно быть сделано?Благодарю.