У меня была настроена привязка данных вот так:
ItemsSource="{Binding Source={my:Enumeration {x:Type credit:OccupationCategory}}}"
DisplayMemberPath="Description"
SelectedValue="{Binding EmplType}"
SelectedValuePath="Value"/>
и это сработало очень хорошо. Внесите изменения в более крупный дизайн программного обеспечения. У меня больше не может быть ничего, что генерирует событие INotifyPropertyChanged, поэтому такой тип привязки данных не работает. Вместо этого я вручную устанавливаю selectedIndex и создаю параметры из кода, подобного этому:
ItemsSource="{Binding Source={StaticResource ResidenceOwnershipType}}"/>
который ссылается
<UserControl.Resources>
<ObjectDataProvider x:Key="ResidenceOwnershipType" MethodName="GetValues" ObjectType="{x:Type System:Enum}" >
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="credit:ResidenceOwnershipType" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
</UserControl.Resources>
Это работает в том, что касается создания параметров списка и связывания всех моих данных, но я не могу заставить поля со списком отображать тег описания в перечислении вместо фактического текста.
Я пробовал что-то вроде этого:
DisplayMemberPath="Description"
но это было неправильно. Как мне это сделать?
РЕДАКТИРОВАТЬ:
Мое перечисление:
[DataContract]
public enum ResidenceOwnershipType
{
[Description("")]
None = 0,
[Description("Owns Home Outright")]
OwnsHomeOutright = 1,
[Description("Buying Home")]
BuyingHome = 2,
[Description("Renting/Leasing")] //Weird order here reflects RouteOne website
RentingLeasing = 4,
[Description("Living w/Relatives")]
LivingWithRelatives = 3,
[Description("Owns/Buying Mobile Home")]
MobileHome = 5,
[Description("Unknown")]
Unknown = 6
}