Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengikat ComboBox WPF ke Senarai Tersuai?

Bagaimana untuk Mengikat ComboBox WPF ke Senarai Tersuai?

DDD
Lepaskan: 2025-01-24 00:10:10
asal
348 orang telah melayarinya

How to Bind a WPF ComboBox to a Custom List?

Ikat ComboBox ke senarai tersuai dalam WPF

Kawalan ComboBox WPF menyediakan pilihan pengikatan data yang fleksibel, termasuk keupayaan untuk memaparkan dan memilih nilai daripada senarai objek tersuai. Panduan ini meneroka cara untuk mengikat ComboBox ke senarai tersuai dalam WPF dan menyelesaikan masalah biasa.

Ikat pada senarai tersuai

Untuk mengikat ComboBox ke senarai tersuai, kelas yang mewakili struktur data senarai diperlukan. Contohnya, jika anda mempunyai senarai entri buku telefon, anda boleh menentukan kelas PhoneBookEntry yang mengandungi sifat seperti nama dan nombor.

Seterusnya, buat ConnectionViewModel yang mendedahkan koleksi objek PhoneBookEntry. Model paparan ini akan bertindak sebagai sumber data untuk ComboBox.

Dalam XAML anda, ikat sifat ItemsSource ComboBox ke sifat PhonebookEntries model lihat. Selain itu, tetapkan sifat DisplayMemberPath untuk menentukan sifat yang harus dipaparkan dalam senarai juntai bawah, dan sifat SelectedValuePath untuk menunjukkan sifat yang harus digunakan apabila memilih item untuk menetapkan sifat SelectedValue.

Aliran data dan arah pengikatan

Secara lalai, pengikatan adalah dwiarah, membenarkan perubahan yang dibuat dalam UI atau model paparan disebarkan kepada kedua-dua pihak. Walau bagaimanapun, terdapat situasi di mana anda mungkin mahu menentukan pengikatan sehala, contohnya apabila anda hanya mahu mengemas kini model paparan apabila perubahan berlaku dalam UI.

Pastikan konteks yang betul

DataContext ComboBox mestilah contoh ConnectionViewModel yang menyediakan senarai tersuai. Jika DataContext tidak ditetapkan secara eksplisit, WPF akan cuba membuat kesimpulan berdasarkan elemen sekeliling dan hierarki yang mengikat.

Memahami warisan tersirat DataContext

Apabila item ditambahkan pada ComboBox melalui ItemsControl atau ItemsPanel, item tersebut mewarisi DataContext elemen induk secara lalai. Ini bermakna DataContext setiap item dalam ComboBox dalam ItemsControl adalah sama dengan DataContext of ItemsControl itu sendiri.

Menyelesaikan isu CollectionView

Jika sifat PhonebookEntries pada ConnectionViewModel ialah CollectionView, anda mungkin menghadapi isu pengikatan dua hala. Untuk menyelesaikan isu ini, pertimbangkan untuk menukar jenis sifat kepada ReadOnlyCollection atau melaksanakan kelas terbitan ICollectionView tersuai.

Alternatif kepada DisplayMemberPath

Dalam sesetengah kes, anda mungkin lebih suka menggunakan kaedah ToString() kelas tersuai dan bukannya DisplayMemberPath. Ini membolehkan kawalan yang lebih besar ke atas teks yang dipaparkan dalam senarai juntai bawah, sambil masih menggunakan sifat SelectedValue untuk menyimpan nilai yang dipilih.

Atas ialah kandungan terperinci Bagaimana untuk Mengikat ComboBox WPF ke Senarai Tersuai?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan