WPF Comment lier un enum avec des descriptions à une zone de liste déroulante
Salut, je veux lier un enum avec des descriptions à une zone de liste déroulante:
Je suis à côté enum:
public enum ReportTemplate
{
[Description("Top view")]
1,
[Description("Section view")]
2
}
J'ai essayé ceci:
<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type System:Enum}"
x:Key="ReportTemplateEnum">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="Helpers:ReportTemplate" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<Style x:Key="ReportTemplateCombobox" TargetType="dxe:ComboBoxEditSettings">
<Setter Property="ItemsSource"
Value="{Binding Source={x:Type Helpers:ReportTemplate}}"/>
<Setter Property="DisplayMember" Value="Description" />
<Setter Property="ValueMember" Value="Value" />
</Style>
Ne peut pas réussir à faire tout 1 un connait une solution simple?
Merci d'avance!
Pour une approche alternative voir stackoverflow.com/questions/9242345/show-enum-in-a-combobox/...
OriginalL'auteur dg90 | 2013-03-22
Vous devez vous connecter pour publier un commentaire.
Cela peut être fait en utilisant un convertisseur et de l'élément de modèle de votre zone de liste déroulante.
Est ici que le convertisseur de code qui, lorsqu'elle est liée à un enum sera de retour la Description de la valeur:
Puis dans votre xaml vous avez besoin pour utiliser et de l'élément de modèle.
OriginalL'auteur RSmaller
RSmaller a une bonne réponse, et c'est celle que j'utilise en tant que bien, avec une mise en garde. Si vous avez plus d'un attribut sur votre enums, et la Description n'est pas la première sur la liste, son "GetEnumDescription" la méthode lève une exception...
Ici est un peu plus sûr de la version:
OriginalL'auteur Brock
OriginalL'auteur user3809159