C# 从数据库馈送列表框获取SelectedItems

C# 从数据库馈送列表框获取SelectedItems,c#,wpf,listbox,datarowview,C#,Wpf,Listbox,Datarowview,我需要从数据库绑定的listbox中的选定项中获取值。但是如果我尝试 listBoxAtribute.SelectedItems[0].ToString() 它返回System.Data.DataRowView 有没有办法将数据从DataRowView转换为字符串 我的想法是这样的: for(int i = 0; i < listBoxAtribute.SelectedItems.Count; i++) { MessageBox.Show(listBoxAtribute.Select

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

listBoxAtribute.SelectedItems[0].ToString()
它返回System.Data.DataRowView

有没有办法将数据从DataRowView转换为字符串

我的想法是这样的:

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

非常感谢您的回复。

首先尝试将列表框的选定项强制转换为DataRowItem,然后访问将列名传递给索引器的列值

这是样品

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

尝试先将listbox的选定项强制转换为DataRowItem,然后访问将列名传递给索引器的列值

这是样品

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

如果要显示第一列值,请将listBoxAtribute.SelectedItem的第一项作为

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

如果要显示第一列值,请将listBoxAtribute.SelectedItem的第一项作为

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

假设您看到的是(可见的)来自所述数据库驱动条目的单个特定列,这将表明您拥有listbox集合的DisplayMember属性。也可能是ValueMember,假设您在任何地方使用EditValue。我会写一些这样的东西

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

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

假设您看到的是,明显地,也就是说,来自所述数据库驱动条目的单个特定列,这将表明您拥有listbox集合的DisplayMember属性。也可能是ValueMember,假设您在任何地方使用EditValue。我会写一些这样的东西

((DataRowView)listBoxAtribute.SelectedItems[0])[listBoxAtribute.DisplayMember].ToString();
这样你就能得到用户在屏幕上看到的东西。现在,如果您想要的数据与屏幕上显示的数据不同,则需要使用user968441的方法并对列名进行硬编码。但这也相对容易