我有一个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显示出来后,里面就已经有值了.因为我想再绑定之后指定选择第二项,所以一直报超出索引.请问是为什么呢?

解决方案 »

  1.   

    我取得 dropdown.SelectedIndex = 1; 索引肯定是没有问题的..
    刚才同事说是这样的..设置了绑定后不是立即就会绑定数据,在别的事件或者线程里面去绑定.需要手动进行中断一下,在绑定结束的事件里面就可以了.
      

  2.   

        public partial class Form6 : 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; }
        }