我有一个看起来像这样的组合框:
<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。每个属性都由静态只读性别字段支持。
由于支持字段是只读的,我的猜测是该集合以某种方式更新了参考。但我无法弄清楚这种绑定是如何完成的......
任何猜测?
更新:我尝试了以下操作但没有效果:
ReadOnlyObserveableCollection
。