2

データベースからバインドされているリストボックスから選択した項目から値を取得する必要があります。でもやってみたら

listBoxAtribute.SelectedItems[0].ToString()

それは返すSystem.Data.DataRowView

DataRowViewデータを からに変換する方法はありますstringか?

私の考えは次のようになります。

for(int i = 0; i < listBoxAtribute.SelectedItems.Count; i++)
{
  MessageBox.Show(listBoxAtribute.SelectedItems[i].Tostring);
}

返信ありがとうございます。

4

4 に答える 4

0
string[] items = listBoxAtribute.SelectedItems.Select(x => x.Item[0]);    
于 2012-06-20T10:57:08.750 に答える
0

DisplayMemberリストボックスセットのプロパティがあることを示す、データベース主導のエントリからの単一の特定の列が表示されていると仮定します。どこでも EditValue を使用していると仮定すると、おそらくValueMember同様です。私はこれらの線に沿って何かを書きます。

((DataRowView)listBoxAtribute.SelectedItems[0])[listBoxAtribute.DisplayMember].ToString();

そうすれば、ユーザーが画面に表示するものを正確に取得できます。ここで、画面に表示されているものとは異なるデータが必要な場合は、user968441 のアプローチを使用して、列名をハードコーディングする必要があります。しかし、それも比較的簡単です。

于 2012-06-20T13:07:12.363 に答える
0

最初にリストボックスの選択した項目を DataRowItem にキャストし、列の値にアクセスして、列名をインデクサーに渡します

サンプルはこちら

((DataRowView)Listbox.SelectedItem)["<column_name>"].ToString();
于 2012-06-20T10:53:32.803 に答える
0

最初の列の値を表示したい場合は、listBoxAtribute.SelectedItem の最初の項目を

for(int i = 0; i < listBoxAtribute.SelectedItems.Count; i++)
{
  MessageBox.Show(listBoxAtribute.SelectedItems[i].Item[0]); 
}
于 2012-06-20T10:54:04.160 に答える