是否有将字典绑定到ListBox的方法?例如:我有这个班:
class Person
{
private string _firstName;
private string _lastName;
private int _age;
public Person(string firstName, string lastName, int age)
{
this._firstName = firstName;
this._lastName = lastName;
this._age = age;
}
public string FirstName
{
get { return _firstName; }
set { this._firstName = value; }
}
public string LastName
{
get { return _lastName; }
set { this._lastName = value; }
}
public int Age
{
get { return _age; }
set { this._age = value; }
}
}
我把它作为我字典的价值:
private Dictionary<string, Person> _persons = new Dictionary<string, Person>();
我想把它绑定到listBox。。。但我需要选择要绑定的项目。。。例如:我想绑定Person,那么所有Person only都会出现在listBox的DisplayMember中。。。
我试着回答:stackoverflow.com/questions/85495/datagridview-bound-to-a-dictionary of Chris但列表框perItem上显示的输出类似于:
{ Key = key, Value = ObjectValue }
问题:有其他方法吗?或者如何修复这个问题,至少编辑列表框的项目?
更新:我刚才看到这个答案:stackoverflow.com/questions/1506987/how-to-bind-dictionary-to-listbox-in-winformations
它似乎起作用了!但我现在的问题是,如果我想显示值的数据要在listBox.DisplayMember上显示什么
没有办法在winforms中的列表框的DisplayMember
中指定类似"Person.FirstName"的内容。
您可以重写Person
的ToString
方法,或者与其绑定字典,不如绑定List<Person>
。。。
或者有一个只用于绑定的类和绑定List<CustomPerson>
。
public class CustomPerson
{
public string Key { get; set; }
public Person Person { get; set; }
public string DisplayValue
{
get { return Person.FirstName; }
}
}
然后将DisplayMember
设置为DisplayValue
。