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

C# Datagridview刷新数据将旧值保留在那里,c#,datagrid,datasource,overlapping,C#,Datagrid,Datasource,Overlapping,我正在使用Windows窗体开发一小段软件。我正在尝试使用datagridview的dataSource属性用列表的内容填充datagridview 绑定似乎是正确的,但我有这种行为。看起来旧数据没有被删除,而新数据位于旧数据之上,重叠了两个文本。我无法确定原因 每次需要更新datagridview时,我都会呼叫: private void updateAforoInDatagridView() { parentForm.dataGridView2.DataSource

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

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

每次需要更新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;
}
内部列表GetTurnossState(列出日预订,列出日行程)
{
对于(int i=0;ibooking.TurnoName.Equals(currentTurno.Nombre)和&booking.TurnoTime==DateAndTiming.getTimeFromString(currentTurno.Entrada)).ToList();
currentTurno.Libre=currentTurno.Aforo-bookingsForCurrentTurno.Sum(booking=>booking.NumberOfPeople);
}
返回日期;
}

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


谢谢。

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


谢谢。

DGV中的数据始终来自同一个源presenter.GetTrunossState()。您在哪里更新源?刚刚编辑了原始问题。您正在从数据库中读取数据,并且从不更改数据库,因此您总是获得相同的值。要获得不同的数据,您需要更改dayBookings和dayTurnos的变量值。单元格中的重叠文本如何?有什么想法吗?这对我来说是一个新的想法,谷歌搜索没有找到任何结果,所以你可能想回答你自己的问题,这样下一个人就可以从中受益。DGV中的数据总是来自同一个源presenter.GetTrunState()。您在哪里更新源?刚刚编辑了原始问题。您正在从数据库中读取数据,并且从不更改数据库,因此您总是获得相同的值。要获得不同的数据,您需要更改dayBookings和dayTurnos的变量值。单元格中的重叠文本如何?有什么想法吗?这对我来说是一个新的想法,谷歌搜索没有发现任何东西,所以你可能想回答你自己的问题,这样下一个人就可以受益。