【发布时间】:2020-06-02 21:30:02
【问题描述】:
是否可以将ListBox绑定到List<A>的DataSource,同时将DisplayMember设置为由A的属性组成的自定义字符串,比如下面的$"{A.b} {A.c}"?
var list1 = new List<A>();
// populate list
MyListBox.DisplayMember = $"{A.b} {A.c}"; // not going to work
MyListBox.DataSource = list1;
我知道我可以使用匿名类型,但我希望 ListBox.Items 保持类型 A。我不想执行以下操作,
var list2 = (from a in list1
select new {A = a, DisplayMember = $"{a.b} {a.c}"}).ToList();
MyListBox.DisplayMember = "DisplayMember";
MyListBox.DataSource = list2;
因为现在MyListBox.Items 是匿名的,无法像var list = MyListBox.Items.OfType<A>() 那样检索A。
那么,有没有办法做到这一点?
【问题讨论】:
标签: c# anonymous-types objectdatasource