none
ComboBox数据绑定后items属性无法调用,如何解决? RRS feed

  • 问题

  • 我在ComboBox控件绑定了一列数据,我现在想吧ComboBox里的项调用到一个数组,我用items属性貌似没有用,我现在该怎么做,谢谢~
    2010年4月13日 1:30

答案

  • 你好!

    这需要做一个转换。

    比如绑定的是一个 DataTable, SelectItem 对应的是 DataRowView。

    如:

    this.combobox.DisplayMember = "Name";

    this.combobox.ValueMember = "Id";

    this.combobox.DataSource = this.dt;

    ... 

    取值

    if (this.combobox.SelectedItem == null)

        return;

    DataRowView drv = this.combobox.SelectedItem as DataRowView; // 将 SelectItem 转换为 DataRowView

    MessageBox.Show(string.Format("Id:{0}\r\nName:{1}", drv["Id"], drv["Name"]));

    若数据源是 List<T> 则 SelectItem 对应的类型为 T。


    知识改变命运,奋斗成就人生!
    2010年4月19日 5:09
    版主

全部回复

  • 什么意思,

    你如果先把COMBOX里面的内容放到一个数组里面,直接读取就可以了

                for (int i = 0; i < comboBox1.Items.Count; i++)
                {
                    MessageBox.Show(comboBox1.Items[i].ToString());
                }


    努力+方法=成功
    2010年4月13日 2:45
  • 你好!

    这需要做一个转换。

    比如绑定的是一个 DataTable, SelectItem 对应的是 DataRowView。

    如:

    this.combobox.DisplayMember = "Name";

    this.combobox.ValueMember = "Id";

    this.combobox.DataSource = this.dt;

    ... 

    取值

    if (this.combobox.SelectedItem == null)

        return;

    DataRowView drv = this.combobox.SelectedItem as DataRowView; // 将 SelectItem 转换为 DataRowView

    MessageBox.Show(string.Format("Id:{0}\r\nName:{1}", drv["Id"], drv["Name"]));

    若数据源是 List<T> 则 SelectItem 对应的类型为 T。


    知识改变命运,奋斗成就人生!
    2010年4月19日 5:09
    版主