WPF ComboBox 可以透過 Binding 物件輕鬆綁定到自訂清單。但是,SelectedItem
或 SelectedValue
綁定有時無法正確更新。 本文討論了常見原因和解決方案。
問題:組合框綁定未更新
有幾個因素可能會阻止您的 ComboBox 綁定更新:
DisplayMemberPath
和 SelectedValuePath
可能無法準確反映您的自訂清單的屬性名稱。 DataContext
指向包含清單的 ViewModel。 解:
驗證屬性路徑: 仔細檢查 DisplayMemberPath
和 SelectedValuePath
是否與您的自訂清單的屬性名稱精確匹配。 例如:
<code class="language-xml"><ComboBox DisplayMemberPath="Name" ItemsSource="{Binding Path=PhonebookEntries}" SelectedValuePath="PhoneNumber"/></code>
確保正確的 DataContext: 確認 ComboBox(或其祖先)的 DataContext
正確指向保存自訂清單的 ViewModel。
檢查 ViewModel: 徹底檢查自訂清單的 ViewModel 以確保其屬性正確更新。 實作 INotifyPropertyChanged
以在屬性值變更時發出 UI 更新訊號。
更多重點:
ReadOnlyCollection<T>
作為 PhonebookEntries
屬性,以避免與 CollectionView
潛在的綁定衝突。 ToString()
方法來定義組合框下拉清單中顯示的值,從而不再需要 DisplayMemberPath
.此方法應該可以解決大多數 ComboBox 綁定更新問題。 請記得仔細檢查您的屬性名稱和 DataContext 設定。
以上是為什麼我的 WPF ComboBox 的 SelectedItem/SelectedValue 綁定沒有更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!