/ / Comment afficher le contenu d'une liste dans un DataGridView sous winforms - c #, winforms, list, datagridview

Comment afficher le contenu d'une liste dans un DataGridView dans winforms - c #, winforms, liste, datagridview

Mon problème est très simple. Je fais un calendrier pour un projet d'école. J'ai besoin d'ajouter certaines propriétés à une liste d'objets afin de sauvegarder un événement dans le calendrier. J'ai réussi à ajouter des éléments à la liste, mais je n'ai pas trouvé le moyen d'afficher tous les événements de la liste dans Winforms. Mon professeur m'a suggéré d'utiliser un DataGridView pour afficher le contenu de la liste. Quelqu'un peut-il me montrer comment lier les objets de ma liste à un DataGridView, et chaque fois que j'ajoute un élément à la liste, il l'ajoute également à la grille? Cela serait très apprécié.

Voici ce que j'ai jusqu'à présent:

    public static List<Event> events = new List<Event>();

[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}

public static void addEvent(string eventDate, string eventTitle, string eventInfo)
{
Event Event = new Event();
Event.eventDate = eventDate;
Event.eventDate = eventTitle;
Event.eventInfo = eventInfo;
events.Add(Event);
}

}


class Event
{
public string eventDate { get; set; }
public string eventTitle { get; set; }
public string eventInfo { get; set; }
}

}

Réponses:

0 pour la réponse № 1

Liez votre DataGridView à une BindingList à la place.

Code:

public static void addEvent(string eventDate, string eventTitle, string eventInfo)
{
Event Event = new Event();
Event.eventDate = eventDate;
Event.eventDate = eventTitle;
Event.eventInfo = eventInfo;
events.Add(Event);
var bindinglist = new BindingList<Event>(events);
var source = new BindingSource(bindingList, null);
grid.DataSource = source;

}

0 pour la réponse № 2

Vous n'avez pas besoin de faire quelque chose de spécial:

 Event event= new Event();
event.eventDate = eventDate;
event.eventDate = eventTitle;
event.eventInfo = eventInfo;
events.Add(event);
DataGridView1.DataSource = events;

Mais vérifiez que votre classe Event est définie en tant que classe publique.