如何从使用数据表创建的组合框中获取所选项目

时间:2012-10-26 13:02:25

标签: c# combobox

在我的项目中,组合框值出现在一个名为“getArticles”的方法中。这是方法:

public void getArticles(ComboBox cb)
{
    var getAll = getAllFromDB("articles", "", "articleName ASC");
    DataTable dt = getAll.Tables["articles"];
    cb.DataSource = dt;
    cb.DisplayMember = "articleName";
    cb.ValueMember = "id";
}

“getAllFromDB”方法正在从articles表中进行选择并返回DataSet。现在我的问题在这里。当我使用cb.SelectedValue时,我可以获得文章名称的id值。这很好,很好。但是,当我使用cb.SelectedItem时,它显示“System.Data.DataRowView”。
请你帮助我,我怎样才能获得使用cb.selectedItem这样的文章名称?为亲切的问候。

1 个答案:

答案 0 :(得分:7)

尝试以下代码行,可能有助于获取所选项目。

        ComboBoxItem requiredItem = (ComboBoxItem)cboType.SelectedItem;
        string value = requiredItem.Content.ToString();

编辑:

很抱歉,上面的ComboBoxItem仅适用于.Net Framework 4.5,它位于System.Windows.Controls命名空间中。请参阅以下代码部分以获取答案并检查

        DataTable dtable = (DataTable)comboBox1.DataSource;
        label1.Text = dtable.Rows[comboBox1.SelectedIndex][0].ToString();//gives you article id
        label2.Text = dtable.Rows[comboBox1.SelectedIndex][1].ToString();//gives you article name