我有一个自定义对象列表,我想将其放入我的表单上的DataGridView中。从Excel电子表格中解析对象。我尝试做我的解析,然后设置DataGridView.DataSource
但没有骰子 - 它总是显示一个灰色框!
public Critr()
{
InitializeComponent();
pLogSheet = LogParser.ParseExcelLog("C:\\working.xlsx");
}
private void Critr_Load(object sender, EventArgs e)
{
dgvLogEntries.AutoGenerateColumns = true;
dgvLogEntries.DataSource = pLogSheet.Entries;
}
当我调试时,我可以看到我的pLogSheet.Entries
实际上已被填充,它有三行数据。
答案 0 :(得分:1)
我的班级设置有问题。 DataGridView
无法识别类的字段,但属性是。所以我将我的字段转换为属性并且效果很好!
class LogEntry
{
public string foo;
public string bar;
public string fooP { get { return foo; } }
public string barP { get { return bar; } }
}
答案 1 :(得分:0)
这适用于List<T>
。您可以复制粘贴并尝试。有一个新的Winforms项目并拖放DataGridView control
然后,您可以映射pLogSheet.Entries
w.r.t. List<Books>
using System.Collections.Generic;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public class Books
{
public string Title { get; set; }
public int TotalRating { get; set; }
}
public partial class Form2 : Form
{
public Form2()
{
var list = new List<Books>
{
new Books() {Title = "Harry Potter", TotalRating = 5},
new Books() {Title = "C#", TotalRating = 5}
};
InitializeComponent();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = list;
}
}
}