Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mudah Mengikat Enum ke Kotak Kombo WPF?

Bagaimana Mudah Mengikat Enum ke Kotak Kombo WPF?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 04:27:41294semak imbas

How to Easily Bind Enums to a WPF ComboBox?

Mengikat Enum ke Kawalan ComboBox WPF

Dalam Persekitaran Pembangunan Antaramuka (IDE) seperti Visual Studio, mengikat enum ke kawalan combobox boleh hadir cabaran. Artikel ini menyediakan panduan mudah untuk mencapai pengikatan ini tanpa kerumitan tambahan.

Untuk memaparkan nilai enum terus dalam kotak kombo tanpa menggunakan rentetan paparan, ikuti langkah berikut:

Daripada kod:

yourComboBox.ItemsSource = Enum.GetValues(typeof(EffectStyle)).Cast<EffectStyle>();

Dalam XAML:

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

Walau bagaimanapun, untuk pendekatan XAML, ObjectDataProvider diperlukan untuk mencipta objek yang tersedia sebagai sumber yang mengikat:

<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>

Perhatikan pengisytiharan xmlns:

xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:StyleAlias="clr-namespace:Motion.VideoEffects"

Barisan ini memetakan ruang nama dan himpunan, seperti yang diterangkan dalam Rangkaian Pembangun Microsoft ( dokumentasi MSDN). Melaksanakan langkah-langkah ini akan membolehkan anda berjaya mengikat enum pada kawalan kotak kombo dalam WPF, memberikan pendekatan yang lebih bersih dan lebih mudah.

Atas ialah kandungan terperinci Bagaimana Mudah Mengikat Enum ke Kotak Kombo WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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