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