如果我有两个对象,即Fruit’和Color`,它们的定义如下:
public class Fruit { public int FruitId { get; set; } public string Name { get; set; } public Color Color { get; set; } } public class Color { public int ColorId { get; set; } public string Name { get; set; } }
如何将Fruit的集合(例如List< Fruit>)绑定到DataGridView?结果输出将类似于以下内容:
+-----+--------+----------+ | Id | Name | Color | +-----+--------+----------+ | 10 | Apple | Red | | 20 | Orange | Orange | | 30 | Grapes | Violet | +-----+--------+----------+
而不是像下面的输出:(注意:N.Color中的N表示对象Color的命名空间)
+-----+--------+------------+ | Id | Name | Color | +-----+--------+------------+ | 10 | Apple | N.Color | | 20 | Orange | N.Color | | 30 | Grapes | N.Color | +-----+--------+------------+
解决方法
你有多种选择.
您可以在Color类中重写ToString方法以返回Name,如:
public class Color { public int ColorId { get; set; } public string Name { get; set; } public override string ToString() { return Name; } }
或者代替分配List< Fruit>作为DataSource,您可以选择匿名对象列表,并在结果中选择“颜色名称”,如:
var result = yourlistofFruit .Select(r => new { FruitID = r.FruitId,Name = r.Name,Color = r.Color.Name,}).ToList(); dataGridView1.DataSource = result;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。