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デバッグすると、実際には3行のデータが入力されていることがわかります。

ここに画像の説明を入力してください

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.Entries次に、 wrtをマップできます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;
        }

    }
}
于 2012-06-13T08:44:06.253 に答える