Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengikat Enum ke Kawalan ComboBox WPF?

Bagaimana untuk Mengikat Enum ke Kawalan ComboBox WPF?

Linda Hamilton
Lepaskan: 2025-01-05 19:16:41
asal
698 orang telah melayarinya

How to Bind Enums to WPF ComboBox Controls?

Mengikat Enum pada Kawalan ComboBox WPF

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.

Pengikatan Berasaskan Kod

Dalam pengendali acara yang Dimuatkan Tetingkap, laksanakan kod berikut:

yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();
Salin selepas log masuk

Ini mendapatkan semula nilai enum dan menetapkannya sebagai item ComboBox sumber.

XAML Binding

Untuk pengikatan XAML, gunakan ObjectDataProvider:

<ComboBox ItemsSource="{Binding Source={StaticResource dataFromEnum}}"
                  SelectedItem="{Binding Path=CurrentEffectStyle}" />
Salin selepas log masuk

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>
Salin selepas log masuk

Ingat untuk mengisytiharkan yang perlu ruang nama:

xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan