2

我需要从从数据库绑定的列表框中的选定项目中获取值。但如果我尝试

listBoxAtribute.SelectedItems[0].ToString()

它返回System.Data.DataRowView

有没有办法将数据从转换DataRowViewstring

我的想法是这样的:

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

非常感谢您的回复。

4

4 回答 4

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 回答
0
string[] items = listBoxAtribute.SelectedItems.Select(x => x.Item[0]);    
于 2012-06-20T10:57:08.750 回答
0

假设您看到的是来自所述数据库驱动条目的单个特定列,这表明您具有DisplayMember列表框集的属性。可能也是ValueMember如此,假设您在任何地方使用 EditValue。我会沿着这些思路写一些东西。

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

这样,您就可以准确地获得用户在屏幕上看到的内容。现在,如果您想要与屏幕上显示的数据不同的数据,则需要使用 user968441 的方法并对列名进行硬编码。但这也相对容易。

于 2012-06-20T13:07:12.363 回答