我有一个combobox绑定问题
如下 List<ObjectTest> test = new List<ObjectTest>();
test.Add(new ObjectTest() { Name = "有效", Value = 1 });
test.Add(new ObjectTest() { Name = "暂停", Value = 2 }); ComboBox dropdown = new ComboBox();
dropdown.DropDownStyle = ComboBoxStyle.DropDownList;
dropdown.DataSource = test;
dropdown.DisplayMember = @"Name";
dropdown.ValueMember = @"Value"然后我再取dropdown.items 发现里面没有值.
但是form显示出来后,里面就已经有值了.因为我想再绑定之后指定选择第二项,所以一直报超出索引.请问是为什么呢?
如下 List<ObjectTest> test = new List<ObjectTest>();
test.Add(new ObjectTest() { Name = "有效", Value = 1 });
test.Add(new ObjectTest() { Name = "暂停", Value = 2 }); ComboBox dropdown = new ComboBox();
dropdown.DropDownStyle = ComboBoxStyle.DropDownList;
dropdown.DataSource = test;
dropdown.DisplayMember = @"Name";
dropdown.ValueMember = @"Value"然后我再取dropdown.items 发现里面没有值.
但是form显示出来后,里面就已经有值了.因为我想再绑定之后指定选择第二项,所以一直报超出索引.请问是为什么呢?
刚才同事说是这样的..设置了绑定后不是立即就会绑定数据,在别的事件或者线程里面去绑定.需要手动进行中断一下,在绑定结束的事件里面就可以了.
{
private List<ObjectTest> test = new List<ObjectTest>(); public Form6()
{
InitializeComponent();
} private void Form6_Load(object sender, EventArgs e)
{
test.Add(new ObjectTest() { Name = "有效", Value = 1 });
test.Add(new ObjectTest() { Name = "暂停", Value = 2 });
this.comboBox1.DataSource = test;
this.comboBox1.DisplayMember = @"Name";
this.comboBox1.ValueMember = @"Value";
} private void Form6_Click(object sender, EventArgs e)
{
MessageBox.Show(this.comboBox1.SelectedValue.ToString());
this.comboBox1.SelectedIndex = 1;
}
}
public class ObjectTest
{
public string Name { get; set; }
public int Value { get; set; }
}