0

我有一个自定义对象列表,我想在我的表单上放入 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的实际上是被填充的,它有三行数据。

在此处输入图像描述

4

2 回答 2

1

我的班级设置有问题。类的字段不被 识别DataGridView,但属性被识别。所以我将我的字段转换为属性,效果很好!

class LogEntry
{
  public string foo;
  public string bar;

  public string fooP { get { return foo; } }
  public string barP { get { return bar; } }
}
于 2012-06-14T00:46:47.350 回答
0

这适用于List<T>. 你可以复制粘贴试试。有一个新的 Winforms 项目并拖放一个DataGridView control

然后,您可以映射您的pLogSheet.EntrieswrtList<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;
        }

    }
}
于 2012-06-13T08:44:06.253 回答