WPF で列挙型を ComboBox にバインドする: 明確で簡潔なアプローチ
列挙型をコンボボックスにバインドする簡単なアプローチを探している人向けWPF の ComboBox については、この記事で簡潔に説明します。 guide.
問題:
BindingPath プロパティを使用して enum を ComboBox にバインドしようとしましたが、enum 値が項目として表示されないことがわかりました。 ComboBox.
解決策:
コードベースのバインド:
Window Loaded イベント ハンドラーで、次のコードを利用します。
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
このコードは列挙値を取得して設定します。 ComboBox の ItemsSource として使用します。
XAML バインディング:
XAML でバインドするには、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>
必ずxmlns を使用した名前空間とアセンブリ。
このアプローチは次のことを提供します。追加の表示文字列による複雑さを必要とせずに、列挙型を WPF ComboBox にバインドする明確かつ簡単な方法です。
以上がEnum を WPF ComboBox に簡単にバインドするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。