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