我正在编写一个winforms应用程序,其中用户从列表框中选择一个项目并编辑构成关联对象一部分的一些数据.然后将编辑从对象列表应用到基础文件.
在ASP.Net中,为列表项分配不同的系统值而不是用户看到的显示文本是微不足道的.在winforms应用程序中,您必须将每个项目的"显示成员"和"有价值成员"设置为稍微复杂一些(而不是在互联网上相关)过程.
我已经这样做了.在调试模式中,我已经确认每个项目现在都有一个值,即显示成员(用户看到的"友好"字符串)和一个键值value,它将键保存到要更新数据的哈希表对象中存在.
因此,当用户选择一个字符串来编辑程序时,应该将"密钥"传递给哈希表,将对象拉出并允许在其上进行编辑.
抓到了吗?
我看不出任何明显的方式告诉程序查看项目的值成员.我天真地期望它填充列表框的"SelectedValue"属性,但到目前为止这太简单了.那我到底怎么去列表项值?
我正在尝试创建 ListBox,其中我将拥有键值对。我从课堂上获得的那些数据是从 getter 那里获得的。
班级:
public class myClass
{
private int key;
private string value;
public myClass() { }
public int GetKey()
{
return this.key;
}
public int GetValue()
{
return this.value;
}
}
Run Code Online (Sandbox Code Playgroud)
程序:
private List<myClass> myList;
public void Something()
{
myList = new myList<myClass>();
// code for fill myList
this.myListBox.DataSource = myList;
this.myListBox.DisplayMember = ??; // wanted something like myList.Items.GetValue()
this.myListBox.ValueMember = ??; // wanted something like myList.Items.GetKey()
this.myListBox.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
它类似于本主题 [ Cannot do key-value in listbox in …