C#在向ObservableCollection添加新项后更改SelectedIndex

时间:2014-02-20 14:59:25

标签: c# data-binding combobox

我有一个组合框,可以从ObservableCollection自动获取元素。如果用户添加带按钮的元素,请单击该集合。将一个项目的名称添加到组合框(数据绑定)。如何实现所选索引自动转到集合中的新项目?

2 个答案:

答案 0 :(得分:1)

在ViewModel中展示SelectedItem属性以及ObservableCollection,然后将ComboBox.SelectedItem绑定到该属性。

然后,您可以在添加的同时将SelectedItem设置为ViewModel中新添加的项目。

你没有提到你是使用MVVM还是代码隐藏,但基本上它会是这样的:

XAML:

<ComboBox ItemsSource={Binding MyCollection}, SelectedItem={Binding MySelectedItem} />

按钮点击代码(在视图模型中)

var element = new MyElement();
MyCollection.Add(element);
MySelectedItem = element; 

这仅适用于使用INotifyPropertyChanged视图模型的情况,因为组合需要知道MySelectedItem何时发生更改。

答案 1 :(得分:1)

您可以绑定组合框的“SelectedIndex”属性,当您添加项目时,只需更新此值:

ObservableCollection<Item> list = new ObservableCollection<Item>();

IndexC = list.Count() - 1;

并绑定在IndexC上。