在绑定到组合框的空可观察集合中添加项目会导致在组合框中自动选择该项目,但所选值仍然为null

本文关键字:项目 组合 选择 null 绑定 观察 添加 集合 | 更新日期: 2023-09-27 18:06:15

我有这个问题:

有一个可观察对象集合,它绑定到combobox。当集合包含任何项目时,一切工作正常,我在集合中添加项目,然后在组合框中选择他,所选值不为空。

我有items控件,它包含反映任何实体的任何组件控件。我可以选择参数这个实体在组合框绑定到可观察集合。

如果我在内容控件中添加第一个新实体并且集合为空,那么在集合中添加项目-该项目将自动在组合框中选择,但组合框所选值为空。结果是,这种情况:在组合框中选择项目,但组合框所选值为空。如果我手动选择这个项目,选择的值被设置为这个项目,并进一步工作аштую我不明白它是怎么回事。这是我的代码:这是集合

public ObservableCollection<AnyType> AnyTemplates { get; set; }

这是xaml代码组合框:

<ComboBox Name="cmbKeyA" 
          Width="100" 
          SelectedValue="{Binding Path=KeyAName}"
          ItemsSource="{Binding Path=DataContext.KeyTemplates, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" 
          DisplayMemberPath="Name" 
          SelectedValuePath="Name"/>

在绑定到组合框的空可观察集合中添加项目会导致在组合框中自动选择该项目,但所选值仍然为null

我不太确定我理解你的问题,但从我所理解的,我会使用依赖属性或实现INotifyPropertyChanged事件的属性绑定到ComboBox的SelectedItem。然后,当我想添加一个Item到ObservableCollection(假设您希望它被选中),我将添加它到集合,并设置我的新属性等于它。