Rumah >pembangunan bahagian belakang >C++ >Mengapa WPF ComboBox's SelectedItem/SelectedValue Binding Tidak Dikemas Kini?
Kotak Kombo WPF mudah terikat pada senarai tersuai melalui objek Mengikat. Walau bagaimanapun, pengikatan SelectedItem
atau SelectedValue
kadangkala gagal dikemas kini dengan betul. Artikel ini membincangkan punca dan penyelesaian biasa.
Masalah: Pengikat ComboBox Tidak Kemas Kini
Beberapa faktor boleh menghalang pengikatan ComboBox anda daripada mengemas kini:
DisplayMemberPath
dan SelectedValuePath
mungkin tidak menggambarkan nama harta senarai tersuai anda dengan tepat.DataContext
menunjuk ke ViewModel yang mengandungi senarai anda.Penyelesaian:
Sahkan Laluan Harta: Semak sekali lagi bahawa DisplayMemberPath
dan SelectedValuePath
padan dengan tepat dengan nama harta senarai tersuai anda. Contohnya:
<code class="language-xml"><ComboBox DisplayMemberPath="Name" ItemsSource="{Binding Path=PhonebookEntries}" SelectedValuePath="PhoneNumber"/></code>
Pastikan Konteks Data yang Betul: Sahkan bahawa DataContext
untuk ComboBox (atau moyangnya) dengan betul menghala ke ViewModel yang memegang senarai tersuai anda.
Periksa ViewModel: Semak dengan teliti ViewModel senarai tersuai anda untuk memastikan sifatnya dikemas kini dengan betul. Laksanakan INotifyPropertyChanged
untuk menandakan kemas kini UI apabila nilai sifat berubah.
Mata Lanjut:
ReadOnlyCollection<T>
untuk sifat PhonebookEntries
dalam ViewModel anda untuk mengelakkan kemungkinan konflik mengikat dengan CollectionView
.ToString()
dalam objek senarai tersuai anda untuk menentukan nilai yang dipaparkan dalam menu lungsur ComboBox, menghapuskan keperluan untuk DisplayMemberPath
.Pendekatan ini harus menyelesaikan kebanyakan isu kemas kini mengikat ComboBox. Ingat untuk menyemak nama harta dan tetapan DataContext anda dengan teliti.
Atas ialah kandungan terperinci Mengapa WPF ComboBox's SelectedItem/SelectedValue Binding Tidak Dikemas Kini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!