Heim >Backend-Entwicklung >C++ >Wie kann ich eine Enum einfach an eine WPF-ComboBox binden?

Wie kann ich eine Enum einfach an eine WPF-ComboBox binden?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-05 02:51:39381Durchsuche

How to Easily Bind an Enum to a WPF ComboBox?

Binden einer Aufzählung an eine ComboBox in WPF: Ein klarer und prägnanter Ansatz

Für diejenigen, die einen unkomplizierten Ansatz zum Binden einer Aufzählung an eine suchen ComboBox in WPF, dieser Artikel bietet eine kurze Zusammenfassung Anleitung.

Problem:

Versuch, eine Aufzählung mithilfe der BindingPath-Eigenschaft an eine ComboBox zu binden, stellt jedoch fest, dass die Aufzählungswerte nicht als Elemente in der sichtbar sind ComboBox.

Lösung:

Codebasierte Bindung:

Verwenden Sie im Window Loaded-Ereignishandler diesen Code:

yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();

Dieser Code ruft die Enum-Werte ab und legt sie als ItemsSource für fest ComboBox.

XAML-Bindung:

Um in XAML zu binden, verwenden Sie einen ObjectDataProvider:

<Window ...>
    <Window.Resources>
        <ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues"
                            ObjectType="{x:Type System:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type TypeName="StyleAlias:EffectStyle"/>
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>
    <Grid>
        <ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
                  SelectedItem="{Binding Path=CurrentEffectStyle}" />
    </Grid>
</Window>

Denken Sie daran, den Namespace und die Assembly mithilfe von xmlns anzugeben .

Dieser Ansatz bietet eine klare und unkomplizierte Möglichkeit, eine Aufzählung an eine WPF-ComboBox zu binden, ohne dass Komplexität zusätzlicher Anzeigezeichenfolgen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine Enum einfach an eine WPF-ComboBox binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn