【发布时间】:2021-07-07 15:48:22
【问题描述】:
我无法将 ValueMember 设置为 listBox
我有职业技能
class Skill
{
public string skillId { get; set; }
public string name { get; set; }
public Skill()
{
}
public Skill(string skillId, string name)
{
this.skillId = skillId;
this.name = name;
}
}
我将列表技能添加到列表中
List<Skill> skills = new List<Skill>();
skills.Add(new Skill("1", "Long"));
skills.Add(new Skill("2", "Nhi"));
foreach (var item in skills)
{
listBox1.Items.Add(item);
listBox1.ValueMember = "skillId";
listBox1.DisplayMember = "name";
}
DisplayMember 显示到 listBox,但 ValueMember 未设置为 listBox 当我单击 ListBox 中的选定项目并单击按钮时,我正在打印
Console.WriteLine("value id listbox1:" + listBox1.SelectedValue);
但它什么都不显示
value id listbox1:
【问题讨论】:
-
请阅读xyproblem.info并相应地编辑您的问题。
-
我正在编辑我的问题,请再次检查并帮助我!
-
ValueMember 和 DisplayMember 旨在与 DataSource 一起使用,而不是
Items.Add(...) -
您从数据源中删除项目,而不是从列表框中。更喜欢
BindingList<T>而不是List<T> -
@ĐứcLong 您刚才在评论中所说的话,您应该添加到问题中。因为虽然
listBox1.DataSource = skills;是一个合法的答案,但在您的情况下可能无法正常工作。但你的问题不包含这个细节。不是每个人都在回答之前阅读 cmets