我的问题是当我在文本框中写东西时,我的组合框清除了它的选择。这只发生在一个特定的组合框中,使用下面的代码进行数据绑定。
private void FillEmployemenetType()
{
var items = new BindingList<KeyValuePair<string, string>>();
items.Add(new KeyValuePair<string, string>("C", "Contract"));
items.Add(new KeyValuePair<string, string>("P", "Permanent"));
items.Add(new KeyValuePair<string, string>("V", "Vacation"));
contractTypeComboBox.DataSource = items;
contractTypeComboBox.ValueMember = "Key";
contractTypeComboBox.DisplayMember = "Value";
contractTypeComboBox.SelectedIndex = 0;
}
我没有解雇任何文本更改事件或为此编写任何代码。 我使用这个窗口形式的绑定源,以防可能出现问题。
答案 0 :(得分:0)
您可以在设置数据源后尝试设置SelectedItem
,以便重新选择上一项。
private void FillEmployemenetType()
{
KeyValuePair<string,string>? previous = null;
if (contractTypeComboBox.DataSource != null) {
previous = (KeyValuePair<string,string>)contractTypeComboBox.SelectedItem;
}
var items = new BindingList<KeyValuePair<string, string>>();
items.Add(new KeyValuePair<string, string>("C", "Contract"));
items.Add(new KeyValuePair<string, string>("P", "Permanent"));
items.Add(new KeyValuePair<string, string>("V", "Vacation"));
contractTypeComboBox.DataSource = items;
contractTypeComboBox.ValueMember = "Key";
contractTypeComboBox.DisplayMember = "Value";
//contractTypeComboBox.SelectedIndex = 0;
if (previous.HasValue) {
try {
contractTypeComboBox.SelectedItem = previous;
}
catch { }
}
}