Apabila cuba memaparkan nilai enum sebagai item dalam ComboBox, mengikat terus daripada Konteks Data mungkin tidak mencukupi. Untuk menangani perkara ini, kami mengemukakan dua pendekatan untuk menyelesaikan isu ini: melalui pengikatan kod dan XAML.
Dalam pengendali acara yang Dimuatkan Tetingkap, laksanakan kod berikut:
yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
Ini mendapatkan semula nilai enum dan menetapkannya sebagai item ComboBox sumber.
Untuk pengikatan XAML, gunakan ObjectDataProvider:
<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}" SelectedItem="{Binding Path=CurrentEffectStyle}" />
Dalam bahagian Sumber Tetingkap, tentukan ObjectDataProvider:
<ObjectDataProvider x:Key="dataFromEnum" MethodName="GetValues" ObjectType="{x:Type System:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="StyleAlias:EffectStyle"/> </ObjectDataProvider.MethodParameters> </ObjectDataProvider>
Ingat untuk mengisytiharkan yang perlu ruang nama:
xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
Kaedah ini menyediakan cara yang mudah dan berkesan untuk mengikat enum pada kawalan ComboBox dalam WPF.
Atas ialah kandungan terperinci Bagaimana untuk Mengikat Enum ke Kawalan ComboBox WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!