ComboBox 内の項目として列挙型値を表示しようとする場合、DataContext から直接バインドするだけでは十分ではない場合があります。これに対処するために、コードと XAML バインディングによる 2 つのアプローチを紹介します。
Window の Loaded イベント ハンドラーで、次のコードを実行します。
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
これは列挙値を取得し、それらを ComboBox の項目として割り当てます。 source.
XAML バインディングの場合、ObjectDataProvider を使用します:
<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" />
Window の Resources セクション内で、ObjectDataProvider を定義します:
<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="StyleAlias:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>
必要なものを忘れずに宣言してくださいnamespaces:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
これらのメソッドは、WPF で列挙型を ComboBox コントロールにバインドする簡単かつ効果的な方法を提供します。
以上が列挙型を WPF ComboBox コントロールにバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。