我正在使用C#.NET 4.0
我试图获取列表框中单个选定项的值 .
这是我填充控件的方式:
this.files_lb.DataSource = DataTable object
在我的设计器中,我将file_name指定为DisplayMember,将file_id指定为DisplayValue
在列表框中选择一个项目后,我尝试了以下方法来获取值:
this.files_lb.SelectedValue.ToString()
但它返回的只是 "System.Data.DataRowView".
在这个链接:Getting value of selected item in list box as string
有人建议 -
String SelectedItem = listBox1.SelectedItem.Value
但是,当我尝试这个时,“ Value ”不是一个选项 .
如何从列表框中的单个选定项获取ValueMember值?
4 回答
var text = (listBox1.SelectedItem as DataRowView)["columnName"].ToString();
将
columnName
替换为要从中获取数据的列的名称,该列将与数据源中的列对应 .如果没有选定项目,请注意空值 .
真的应该这么容易;我在按钮的点击事件中有以下内容,以确保我没有在我脑海中简化它:
结果如下:
编辑
看起来你的问题可能是没有在控件上设置属性:
选择ListBox控件
单击小箭头以显示绑定/项目选项
选择 Use Data Bound Items
如果我取消选择该框,我会得到与您描述的完全相同的行为 .
您可能需要设置列表框的DataValueField .