c# - 向列表框项添加值。C#
问题描述
我有一个列表框,里面有我想要的信息。但是,当用户在特定行上选择时,我需要发送一个数字。
列表框数据:
Test1
Test2
Test3
例如,当我在列表中选择 Test1 时,我需要返回整数 2。我问是否无论如何我可以分配数字 2 与之关联"Test2"
listbox.Items.Add("Name displayed on list", value);
解决方案
是的,ListBox Items 是类型object
,你可以为它们分配任何对象,所以构建一个像这样的类:
public class ListItem
{
public string Name {get; set;}
public int Value {get; set;}
public override string ToString()
{
return Name;
}
}
现在您可以像这样添加 ListBox 项:
listbox.Items.Add(new ListItem { Name = "Test1", Value = 2});
当一个 ListBox 项目被选中时,你可以得到它的值,如:
var value = ((ListItem)listbox.SelectedItem).Value;
请注意,由于 ListBox 使用其 Items.ToString()
方法来创建要显示的文本,因此您必须ToString()
像这样覆盖它的方法:
public override string ToString()
{
return Name;
}
否则它将显示类的名称而不是您想要的值。
推荐阅读
- excel - 基于正则表达式的 Excel“智能”自动完成(新功能?)
- php - 如何在 PHP 中将 GROUP BY + ORDER BY + WHERE 与 GET 一起使用?
- java - 如何在 try catch throw 中抛出错误对话框?
- .net - 关联 dotnet 核心服务之间的 Web 请求
- html - Angular 6 IE 样式内联
- android - 无法解析符号 v7:导入 android.support.v7.widget.RecyclerView
- ios - 如何与世界各地的随机人进行匹配并跨设备发送数据?
- java - Hibernate 可以生成与 java 属性名逐字匹配的 DDL 列名吗?
- android - 如何将资产文件夹中的视频加载到视频视图?
- php - 向表中添加新列