在我的应用程序中,我需要在选择combobox
时更新某个图像。目前,我通过捕获SelectedIndexChanged
事件并在那里更新图像来完成此操作。
我一直在尝试另一种方法,即使用Binding
来简化我的代码,但它不起作用。
因为ComboBox.SelectedItem
与特定属性的绑定仅在 ComboBox
失去焦点或其他控件获得焦点后才应用 - 而不是在{{1}之前或之前事件被触发了。
如何更改SelectedIndexChanged
或SelectedItem
时立即应用绑定?
这是我的代码:
SelectedIndex
答案 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);