[英]display list items into data grid view c#
我有一个超类(抽象),然后是 2 个继承类。
超类:会话
第 1 类:骑自行车
第 2 课:跑步
我还有一个包含我所有对象的列表private List<Session> allSessions = new List<Session>();
我还声明了一些包含硬编码数据的数组来填充我的对象。
此外,Running and Cycling 有一个重写的ToString()
方法,该方法根据类显示不同的数据。
public override string ToString() => $"Cycle Average RPM is {AverageRpm} and Average Resistance is {AverageResistance}";
我正在使用 for 循环来创建新对象并将其添加到我的列表中,如下所示
for (int i = 0; i < id.Length; i++)
{
Cycling Cycle = new Cycling(id[i], titles[i], date[i], duration[i], difficulty[i], instructor[i],
description[i], averageRpm[i], averageResistance[i]);
// Add new objects to list
allSessions.Add(Cycle);
}
我有一个 dataGridView,它从我的列表中获取所有内容并像这样显示它:
我现在的问题是,我想根据您在 ComboBox 中选择的内容只显示特定数据,但有些东西不起作用,
由于某种原因,覆盖的ToString()
没有添加到列表中,每当我从 ComboBox 中选择不同的选项时,都不会显示任何内容。
编辑 1:
// Filter Sessions by type using Linq
var sessions = new List<Session>();
var cyclingSessions = sessions.OfType<Cycling>();
var runningSessions = sessions.OfType<Running>();
listBox1.DataSource = null;
listBox1.Items.Clear();
if (cboMenu.SelectedIndex == 0)
{
// Populate GridView with data
dataDisplay.DataSource = allSessions;
}
else if (cboMenu.SelectedIndex == 1)
{
// Populate GridView with data
dataDisplay.DataSource = cyclingSessions;
}
else
{
// Populate GridView with data
dataDisplay.DataSource = runningSessions;
}
}
您需要筛选会话列表,并设置为您的数据源,你可以轻松过滤使用列表OfType
从System.Linq
它看起来是这样的:
var sessions = new List<Sessions>();
var cyclingSessions = sessions.OfType<Cycling>();
var runningSessions = sessions.OfType<Running>();
dataDisplay.DataSource = cyclingSessions;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.