0

我有一个看起来像这样的组合框:

<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。这些属性中的每一个都由静态只读性别字段支持。

因为支持字段是只读的,所以我的猜测是该集合正在以某种方式更新引用。但我无法弄清楚如何使用这种绑定来完成......

有什么猜测吗?

更新:我尝试了以下没有效果:

  1. 删除 SelectedIndex 和 SelectedValuePath
  2. 向 GenderList 集合的集合添加事件已更改(未触发)。
  3. 从 SelectedItem 中删除 TwoWay 模式
  4. 将 Gender.GenderList 更改为ReadOnlyObserveableCollection.
4

0 回答 0