如何在SelectedIndex更改时获取ComboBox.SelectedItem?

时间:2018-02-16 13:58:10

标签: c# .net winforms data-binding combobox

在我的应用程序中,我需要在选择combobox时更新某个图像。目前,我通过捕获SelectedIndexChanged事件并在那里更新图像来完成此操作。

我一直在尝试另一种方法,即使用Binding来简化我的代码,但它不起作用。

因为ComboBox.SelectedItem与特定属性的绑定仅在 ComboBox失去焦点或其他控件获得焦点后才应用 - 而不是在{{1}之前或之前事件被触发了。

如何更改SelectedIndexChangedSelectedItem时立即应用绑定?

这是我的代码:

SelectedIndex

1 个答案:

答案 0 :(得分:4)

要解决此问题,您可以绑定到SelectedValue属性:

comboBox1.DataSource = Enum.GetValues(typeof(Race)).Cast<Race>()
    .Select(x => new { Value = x, Display = x.ToString() })
    .ToList();
comboBox1.DisplayMember = "Display";
comboBox1.ValueMember = "Value";
comboBox1.DataBindings.Add(nameof(comboBox1.SelectedValue), person, nameof(person.Race),
    true, DataSourceUpdateMode.OnPropertyChanged);