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中文网其他相关文章!