追加の表示文字列を使用せずに列挙値を ComboBox 内の項目として表示しようとする試みは、失敗することが判明しました。 XAML コードではクラス プロパティへのバインドが使用されていますが、列挙値は表示されません。
コードによるバインド
ウィンドウ内で読み込まれましたイベント ハンドラー。ItemsSource プロパティに列挙型を設定します。値:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
XAML でのバインド
ObjectDataProvider の使用:
<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>
名前空間マッピング
エイリアスの使用法に注意してくださいnamespaces:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
名前空間とアセンブリの適切なマッピングについては、MSDN ドキュメントを参照してください。
以上がEnum を WPF ComboBox にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。