我有一个列表框,如下所示:
ID 客户名称
- 迈克尔
- 史蒂夫
- 史密斯
现在,我知道了客户端的 ID,我如何获得它的 DisplayMember?
Cast into DataRowView
and convert 按索引选择客户名称列,即 1。
String ClientName = (((DataRowView) listBox1.SelectedItem).Row[1]).ToString();
var t = from list in USStates where te.ShortName == textBox1.Text select te.LongName.ToString();
foreach(String st in t)
{
MessageBox.Show(st);
}
其中 USStates 是通用列表,TextBox1.text 包含 id 的值。考虑到您的列表框使用通用列表作为数据源。
你可以试试这段代码。如果是DataSource
,则编写示例,但如果是其他内容,请尝试查看 的in Items 属性是什么类型。Listbox
DataTable
object
ListBox
(请注意,我不喜欢使用break
语句,但这是最快的方法)
string str = string.Empty;
foreach (DataRowView drv in listBox1.Items)
{
int lvID = int.Parse(drv.Row[listBox1.ValueMember].ToString());
if (lvID == 5)
{
str = drv.Row[listBox1.DisplayMember].ToString();
break;
}
}
有一个更简单的解决方案。特别是如果您正在构建数据源,填充它,然后释放源。使用 Items 列表创建当前所选项目的 DataRowView。然后只需拉出正确的索引。0 将给您“价值成员”,1 将给您“显示成员”。
DataRowView thisLine = cbTrackerFormList.Items[cbTrackerFormList.SelectedIndex] as DataRowView;