从数据库馈送ListBox中获取SelectedItems

时间:2012-06-20 10:47:59

标签: c# wpf listbox datarowview

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

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 个答案:

答案 0 :(得分:0)

首先尝试将列表框的选定项目转换为DataRowItem并访问列值,将列名称传递给索引器

以下是样本

((DataRowView)Listbox.SelectedItem)["<column_name>"].ToString();

答案 1 :(得分:0)

如果要显示第一列值,则将listBox Attribute.SelectedItem的第一项作为

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

答案 2 :(得分:0)

string[] items = listBoxAtribute.SelectedItems.Select(x => x.Item[0]);    

答案 3 :(得分:0)

假设您正在看到,即所谓的数据库驱动条目中的单个特定列,这表明您具有列表框集的DisplayMember属性。假设您在任何地方使用EditValue,也可能是ValueMember。我会沿着这些方向写点什么。

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

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