0

我有一个对象,我想在 datagridview 中显示。对象(运动)具有名称、权重和一些 Location 对象。每个位置都有一个名称和一个值。我希望能够为每个动作在 DGV 的各自列中显示名称、重量、location1.name、location1.value、location2.name、location2.value。

我已经设法覆盖了 Location 的 toString 方法,但是每个位置只给了我 1 列,我真的希望能够有两个。有没有办法做到这一点?我目前正在使用这样的 BindingSource

BindingSource movementSource = new BindingSource();

movementsSource.DataSource = aircraft.movements;

MovementDataGridView.DataSource = movementsSource;

如果它有任何不同的动作是List<Movement>

谢谢!

4

1 回答 1

0

我所做的是创建一个像这样的包装类:

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..
}

然后将网格绑定到 a List<MovementView>

movementsSource.DataSource = aircraft.movements
    .Select(t => new MovementView(t))
    .ToList();
于 2013-08-09T00:52:41.857 回答