Datagridview刷新数据将旧值保留在那里

问题描述 投票:2回答:1

我正在使用Windows窗体开发一小部分软件。我正在尝试使用其dataSource属性用列表的内容填充datagridview。

该绑定似乎是正确的,但是我有这种行为。看起来旧数据没有被删除,而新数据位于旧数据之上,两个文本重叠。我无法确定原因。

You can see this behaviour here

And here

每次我要更新我正在调用的datagridview时:

 private void updateAforoInDatagridView()
 {
        parentForm.dataGridView2.DataSource = null; 
        parentForm.dataGridView2.DataSource = presenter.getTurnosState(dayBookings, dayTurnos);
        parentForm.dataGridView2.Refresh();
        parentForm.dataGridView2.Update();
 }

这是我要放置在datagridview中的对象

public string Entrada { get => entrada; set => entrada = value; }
public string Salida { get => salida; set => salida = value; }
public string Nombre { get => nombre; set => nombre = value; }
public decimal Aforo { get => aforo; set => aforo = value; }
public decimal Libre { get => libre; set => libre = value; }

[前四个属性来自数据库,最后一个是我在这里进行一些计算后手动添加的:

internal List<Turno> getTurnosState(List<Booking> dayBookings, List<Turno> dayTurnos)
{
    for (int i = 0; i < dayTurnos.Count; i++)
    {
        var currentTurno = dayTurnos[i];
        var bookingsForCurrentTurno = dayBookings.Where(booking => booking.TurnoName.Equals(currentTurno.Nombre) && booking.TurnoTime == DateAndTiming.getTimeFromString(currentTurno.Entrada)).ToList();
        currentTurno.Libre = currentTurno.Aforo - bookingsForCurrentTurno.Sum(booking => booking.NumberOfPeople);
    }

    return dayTurnos;
}
c# datagrid datasource overlapping
1个回答
0
投票

我最终通过从视图中删除datagridview并添加了一个新的行为来摆脱了这种奇怪的行为。我无法确切地说出是哪个属性导致了此行为,但幸运的是,它已解决。

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.