Тема: Допоможіть розібратися з DataGridView WinForms
Вітаю! Мені потрібно зробити так, щоб користувач у TextBox'и вводив дані, ці дані додавалися до списку структур List<> і виводилися на DataGridView, і далі користувач міг управляти цими даними(видаляти за індексом, додавати за індексом і т.д.). Додавання даних до списку я зміг зробити, аби як зміг додати їх на DataGridView (проблемою є те, що у мене не виходить змінити назви стовпчиків, бо вони прив'язані через DataSource до списку), але після маніпулювання з даними, вони в списку начебто правильно змінюються, а ось DataGridView не оновлюється. Допоможіть будь ласка вирішити цю проблему.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace TransportSchedule
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
dataGridView.DataSource = transList;
}
public struct Transport
{
public string CityDeparture { set; get; }
public string CityDestination { set; get; }
public string DateDeparture { set; get; }
public string DateDestination { set; get; }
public double Price { set; get; }
public Transport(string cityDeparture, string cityDestination, string dateDeparture, string dateDestination, double price)
{
CityDeparture = cityDeparture;
CityDestination = cityDestination;
DateDeparture = dateDeparture;
DateDestination = dateDestination;
Price = price;
}
}
List<Transport> transList = new List<Transport>();
private void addButton_Click(object sender, EventArgs e)
{
Transport transport = new Transport(cityDepartureBox.Text, cityDestinationBox.Text, dateDepartureBox.Text, dateDestinationBox.Text, Double.Parse(priceBox.Text));
transList.Add(transport);
dataGridView.DataSource = null;
dataGridView.DataSource = transList;
}
private void deleteButton_Click(object sender, EventArgs e)
{
int index = Convert.ToInt32(deleteIndexBox.Text) - 1;
transList.RemoveAt(index);
}
private void clearButton_Click(object sender, EventArgs e)
{
DialogResult answer = MessageBox.Show("Ви дійсно хочете очистити всі дані?\nЦю дію неможливо відминити!", "Попередження", MessageBoxButtons.YesNo);
if(answer == DialogResult.Yes)
{
transList.Clear();
}
}
}
}