Einfachstes Beispiel für data-binding mit enum

Es gibt einige Stackoverflow-Threads (1 und 2), die sich damit beschäftigen, ein enum als Datenquelle für ein WPF-Control mit Hilfe von data-binding zu nutzen. Die meisten Lösungsansätze sind ziemlicher overkill und der Code nicht exakt ausgeführt, so dass sie nicht leicht zum Laufen gebracht werden können. Daher folgt nun ein ziemlich triviales Beispiel, welches exakt so läuft, wie es hier steht und aus nur zwei kleinen Dateien besteht:

In Visual Studio:
File -> New -> Project
Installed -> Templates -> Visual C# -> Windows -> WPF Application

1.) MainWindow.xaml.cs kann gelöscht werden.

2.) Der Code in MainWindow.xaml wird ersetzt durch:

<Window 
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:System="clr-namespace:System;assembly=mscorlib"
 xmlns:local="clr-namespace:MyExampleApplication"
 Title="Bind to Enum" Width="250" Height="100">
    <Window.Resources>
        <ObjectDataProvider x:Key="myEnumValues" MethodName="GetValues" ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="local:MyExampleEnum"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid>
        <ComboBox ItemsSource="{Binding Source={StaticResource myEnumValues}}" />
    </Grid>
</Window>

3.) Neue Datei ‘MyExampleEnum.cs’ erzeugen und folgenden Code eintragen:

namespace MyExampleApplication
{
    public enum MyExampleEnum
    {
        Red,
        Green,
        Yellow
    }
}

Und so sieht MyExampleApplication dann im Ergebnis aus:

enum data-binding wpf control

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.