如果在ItemsSource集合中替换了当前选择的项目,如何在组合框上保持选择?在这种情况下,集合是一个ObservableCollection,当然如果当前选择的项目被替换,组合框将失去其选择 - 没有选择任何内容。
ComboBox看起来像:
<ComboBox
Name="combobox"
SelectedValuePath="Id"
DisplayMemberPath="Description"
SelectedValue="{Binding Source={StaticResource cvs}, Path=Id, Mode=TwoWay}"/>
我不能简单地每次手动在组合框上设置所选项目,因为集合是在我无法触及的另一个通用类中操作的!
谢谢!
答案 0 :(得分:1)
将selectedVaule绑定到您的Id属性。因此,如果您希望新添加的项目是所选项目,只需将您的Id属性设置为新项目并调用OnPropertyChanged(“Id”)
myCollection.Remove(oldItem);
myCollection.Add(newItem);
Id = newItem;
OnPropertyChanged("Id")
答案 1 :(得分:0)
使用此代码选择新项目:
combobox.SelectedItem = newItem;
更新:
如果替换项目的代码部分不知道combobox
,则需要执行以下操作:
CollectionChanged
活动。