【发布时间】:2011-05-16 07:49:17
【问题描述】:
如果当前选定的项目在 ItemsSource 集合中被替换,我如何保持对组合框的选择?在这种情况下,集合是 ObservableCollection,当然如果当前选定的项目被替换,组合框将失去其选择 - 没有任何选择。
组合框看起来像:
<ComboBox
Name="combobox"
SelectedValuePath="Id"
DisplayMemberPath="Description"
SelectedValue="{Binding Source={StaticResource cvs}, Path=Id, Mode=TwoWay}"/>
我不能简单地每次手动设置组合框上的选定项,因为集合是在另一个我无法触及的通用类中操作的!
谢谢!
【问题讨论】:
-
保持选择的标准是什么?索引?
-
该项目只被替换而不是被删除 - 我不想改变选择
-
当您替换一个项目时,旧项目被删除并添加新项目。因此,先前选择的项目不再出现在集合中。在它的位置,有一个新项目。您希望选择该新项目吗?如果是这样,请向我们显示您替换该项目的代码。
-
@Daniel 是的,这就是正在发生的事情,是的,我确实希望选择新项目,代码并不特殊,就像:myCollection.Remove(oldItem); myCollection.Add(newItem);