Beim Versuch, Aufzählungswerte als Elemente in einer ComboBox anzuzeigen, reicht die Bindung direkt aus dem DataContext möglicherweise nicht aus. Um dieses Problem anzugehen, stellen wir zwei Ansätze zur Lösung dieses Problems vor: durch Code- und XAML-Bindung.
Führen Sie im Loaded-Ereignishandler des Fensters den folgenden Code aus:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
Dadurch werden die Enum-Werte abgerufen und als Elementquelle der ComboBox zugewiesen.
Für die XAML-Bindung verwenden Sie einen ObjectDataProvider:
<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" />
Definieren Sie im Abschnitt „Ressourcen“ des Fensters den ObjectDataProvider:
<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="StyleAlias:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>
Denken Sie daran, die erforderlichen Namespaces zu deklarieren:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
Diese Methoden bieten einfache und effektive Möglichkeiten, Aufzählungen an ComboBox-Steuerelemente zu binden WPF.
Das obige ist der detaillierte Inhalt vonWie binde ich Enums an WPF-ComboBox-Steuerelemente?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!