Я разрабатываю небольшую часть ПО, используя Windows Forms. Я пытаюсь заполнить datagridview содержимым списка, используя его свойство dataSource.
Привязка кажется правильной, но у меня такое поведение. Похоже, старые данные не удаляются, а новые помещаются над старыми, перекрывая оба текста. Я не могу определить причину.
Это поведение можно увидеть здесь
А здесь
Каждый раз Мне нужно обновить свой 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;
}