WPF-so binden Sie ein enum mit Beschreibungen zu einem combobox
Hi ich will mir das binden einer enum mit Beschreibungen zu einem Kombinationsfeld:
Ich habe nächste enum:
public enum ReportTemplate
{
[Description("Top view")]
1,
[Description("Section view")]
2
}
Habe ich versucht, dieses:
<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>
Kann nicht gelingen, dies zu tun, 1 kennt eine einfache Lösung?
Vielen Dank im Voraus!
- Für einen alternativen Ansatz siehe stackoverflow.com/questions/9242345/show-enum-in-a-combobox/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese kann getan werden, durch Verwendung eines Konverter-und Artikel-Vorlage für Ihre comboBox.
Hier ist der converter code, die, wenn Sie gebunden ist, einen enum zurück Beschreibung Wert:
Dann im xaml-Code, die Sie verwenden müssen, und die Element-Vorlage.
RSmaller hat eine gute Antwort, und ist die eine ich als gut, mit einer Einschränkung. Wenn Sie mehr als ein Attribut auf Ihre Enumerationen, und die Beschreibung ist nicht die erste aufgeführt ist, dann seine "GetEnumDescription" - Methode eine Ausnahme werfen...
Hier ist eine etwas sicherere version: