2012-06-13 4 views
0

양식의 DataGridView에 던져 넣을 사용자 지정 개체 목록이 있습니다. 개체는 Excel 스프레드 시트에서 파싱됩니다. 내 구문 분석을 시도한 다음 DataGridView.DataSource을 설정했지만 주사위는 표시하지 않습니다. 항상 회색 상자가 표시됩니다! 목록에서로드 할 때 DataGridView가 회색 상자를 표시합니다. <T>

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이 채워지는 사실에 있음을 볼 수있다, 그것은 세 개의 데이터 행이 있습니다.

enter image description here

+0

데이터 소스를 설정 한 후 dgv에서'Refresh()'를 호출 해 보았습니까? 또한 [AutoGenerateColumns] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.autogeneratecolumns.aspx) 속성이 true로 설정되어 있는지 확인하십시오. – Bridge

+0

@Bridge 방금 시도했지만 여전히 회색 상자였습니다. 또한'dgvLogEntries.AutoGenerateColumns = true'를 통해 AutoGenerateColumns를 true로 설정하고 결과도 표시하지 않습니다. –

+0

그런 식으로 코드를 설정하는 경우 데이터 소스를 설정하기 전에 해당 속성을 설정하고 있습니까? – Bridge

답변

1

내 수업 설정에 결함이있었습니다. 클래스 필드는 DataGridView에 의해 인식되지 않지만 속성은 있습니다. 그래서 필자는 필드를 속성으로 변환하여 훌륭하게 작동했습니다!

class LogEntry 
{ 
    public string foo; 
    public string bar; 

    public string fooP { get { return foo; } } 
    public string barP { get { return bar; } } 
} 
0

List<T>와 함께 작동합니다. 복사하여 붙여 넣기를 시도 할 수 있습니다. 새 Winforms 프로젝트 및 끌어서 놓기 DataGridView control

그런 다음 pLogSheet.Entries w.r.t.을 매핑 할 수 있습니다.

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; 
     } 

    } 
} 
관련 문제