Combobox更新ItemsSource时不应该

时间:2012-11-20 19:25:12

标签: c# .net wpf xaml

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

<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中的顶部项目,其中包含从数据库加载的值。 (在我的repro示例中,Unknown被Male覆盖)。

我的GenderList是静态性别属性的ObserverableCollection。每个属性都由静态只读性别字段支持。

由于支持字段是只读的,我的猜测是该集合以某种方式更新了参考。但我无法弄清楚这种绑定是如何完成的......

任何猜测?

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

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

0 个答案:

没有答案