在List collection Items中仅显示组合框中的一列

时间:2011-02-28 20:48:45

标签: c# .net

portfolioHeaders = PortfolioService.GetPortfolioHeadersByQuery();

List<PortfolioHeaders> list = new List<PortfolioHeaders>;
list.AddRange(portfolioHeaders);

以上是代码。

它的输出将是ID,名称,类型和修改日期。

当我使用列表到网格数据源时,我可以看到所有记录都完美无缺。

现在我的问题是

我想要只在ComboBox中显示Name并忽略其他内容。

任何人都可以建议我这样做吗

4 个答案:

答案 0 :(得分:2)

怎么样,

var names = list.Select( p => p.Name);
comboBox1.DataSource = names;
comboBox1.DataBind();

答案 1 :(得分:2)

使用绑定的DisplayMember属性:

List<MyHeaders> headers = new List<MyHeaders>();
headers.Add( new MyHeaders{ID=10, Name="Yo"} );
headers.Add( new MyHeaders{ID=2, Name="OY"} );
headers.Add( new MyHeaders{ID=3, Name="Pickles"} );
headers.Add( new MyHeaders{ID=4, Name="Florky"} );

this.comboBox1.DataSource = headers;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "ID";

答案 2 :(得分:1)

将ComboBox的“DisplayMember”属性设置为“Name”,并将“ValueMember”设置为“Name”(如果要引用该值)。

答案 3 :(得分:0)

PortfolioHeaders类覆盖toString函数。然后将项目列表添加到组合框中。无论重写的tostring函数返回什么,都将在组合框中显示。