1

CheckedListBox から表示値を抽出しようとするこのコードがあります。

CheckedListBox.CheckedItemCollection selectedUnits = checkedListBoxUnits.CheckedItems;
_selectedUnit = selectedUnits[0].ToString();

...しかし、機能しません。「_selectedUnit」の値は、「カモノハシ」ではなく、「System.Data.DataRowView」です。

この複雑なオブジェクトから文字列値を引き出すにはどうすればよいですか?

アップデート

user2946329 が bzg を見たいと思っているかどうかはわかりません。私のCheckedListBoxですが、これがどのように入力されるかです:

private void PopulateUnits()
{
    using (SqlConnection con = new SqlConnection(ReportRunnerConstsAndUtils.CPSConnStr))
    {
        using (SqlCommand cmd = new SqlCommand(ReportRunnerConstsAndUtils.SelectUnitsQuery, con))
        {
            cmd.CommandType = CommandType.Text;
            using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);
                ((ListBox)checkedListBoxUnits).DataSource = dt;
                ((ListBox)checkedListBoxUnits).DisplayMember = "Unit";
                ((ListBox)checkedListBoxUnits).ValueMember = "Unit";
            }
        }
    }
}

あなたに役立つ何かが欠けている場合はお知らせください。

4

4 に答える 4

2

次のようになります。

DataRowView dr = checkedListBoxUnits.CheckedItems[0] as DataRowView;
string Name = dr["Unit"].ToString();
于 2015-12-22T19:13:08.890 に答える
1
_selectedUnit = ((DataRowView)selectedUnits[0])["Name"].ToString();

重要なのは、アイテムにアクセスする前にアイテムを型キャストすることです...

于 2015-12-22T19:55:19.720 に答える