【问题标题】:C# Change SelectedIndex after adding new item to ObservableCollection将新项目添加到 ObservableCollection 后 C# 更改 SelectedIndex
【发布时间】:2014-03-21 14:43:06
【问题描述】:

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

【问题讨论】:

  • 请添加一些代码向我们展示您的尝试。

标签: c# data-binding combobox


【解决方案1】:

在您的 ViewModel 中公开一个SelectedItem 属性以及ObservableCollection,然后将ComboBox.SelectedItem 绑定到它。

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

你没有提到你是在使用 MVVM 还是 codebehind,但基本上它会是这样的:

XAML:

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

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

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

这仅在您使用带有 INotifyPropertyChanged 的视图模型时才有效,因为组合需要知道 MySelectedItem 何时更改。

【讨论】:

  • 你的意思是这样的:comboBox.SelectedItem = list?我不明白你的提议
【解决方案2】:

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

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

IndexC = list.Count() - 1;

然后你绑定在 IndexC 上。

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    相关资源
    最近更新 更多