如何使用BindingSource在数据网格视图中显示对象中的多列
本文关键字:显示 对象 视图 网格 BindingSource 何使用 数据 数据网 | 更新日期: 2023-09-27 18:26:53
我有一个想要在数据网格视图中显示的对象。对象(移动)有一个名称、一个权重,然后是一些"位置"对象。每个位置都有一个名称和一个值。我想做的是,每个动作都在DGV的各自栏中显示名称、重量、位置1.name、位置1.value、位置2.name、位置2.value。
我已经成功地覆盖了Location的toString方法,但这只给了我每个Location一列,我真的希望能够有两列。有办法做到这一点吗?我目前正在使用类似的BindingSource
BindingSource movementSource = new BindingSource();
movementsSource.DataSource = aircraft.movements;
MovementDataGridView.DataSource = movementsSource;
如果有任何不同,则移动为List<Movement>
谢谢!
我所做的是创建一个像这样的包装类:
class MovementView {
private Movement movement;
public MovementView(Movement m) { movement = m; }
public string Name { get { return movement.Name; } }
// etc..
public string Location1Name { get { return movement.Locations[0].Name; } }
// etc..
}
然后将网格绑定到List<MovementView>
:
movementsSource.DataSource = aircraft.movements
.Select(t => new MovementView(t))
.ToList();