我有一个看起来像这样的组合框:
<ComboBox x:Name="cbGender"
DisplayMemberPath="Value"
ItemsSource="{x:Static patientObjects:Gender.GenderList}"
SelectedIndex="0"
SelectedItem="{Binding Encounter.Patient.Gender,
Mode=TwoWay}"
SelectedValuePath="Id"
StaysOpenOnEdit="True" />
这一切都适用于正常使用。但是,当我从数据库中加载 Encounter.Patient.Gender 时,请清除该值。组合框的下一次使用已经用从数据库加载的值覆盖了我的 Gender.GenderList 中的顶部项目。(在我的复制示例中,未知被男性覆盖)。
我的 GenderList 是静态性别属性的 ObserverableCollection。这些属性中的每一个都由静态只读性别字段支持。
因为支持字段是只读的,所以我的猜测是该集合正在以某种方式更新引用。但我无法弄清楚如何使用这种绑定来完成......
有什么猜测吗?
更新:我尝试了以下没有效果:
- 删除 SelectedIndex 和 SelectedValuePath
- 向 GenderList 集合的集合添加事件已更改(未触发)。
- 从 SelectedItem 中删除 TwoWay 模式
- 将 Gender.GenderList 更改为
ReadOnlyObserveableCollection
.