Winforms 如何在datagridview中显示列表数据?

Winforms 如何在datagridview中显示列表数据?,winforms,datagridview,Winforms,Datagridview,我正在尝试将数据列表绑定到数据网格,但做不到。我在这里给你我的密码 我上过这样的课: public class Book { int bookID; string bookName; string athourName; public Book(int BookID, string BookName, string AuthorName) { bookID = BookID; bookName = BookName;

我正在尝试将数据列表绑定到数据网格,但做不到。我在这里给你我的密码

我上过这样的课:

public class Book
{
    int bookID;
    string bookName;
    string athourName;

    public Book(int BookID, string BookName, string AuthorName)
    {


        bookID = BookID;
        bookName = BookName;
        athourName = AuthorName;

    }
}
在form load事件下,我编写了以下代码:

 private void Form1_Load(object sender, EventArgs e)
    {
        Book Book1 = new Book(001, "Java", "Harbart");
        Book Book2 = new Book(002, "C", "Balaguru");

        string[] BookArray = new string[10];

        BookArray[0] = Book1.ToString();
        BookArray[1] = Book2.ToString();


        List<Book> Obj = new List<Book>();

        Obj.Add(Book1);
        Obj.Add(Book2);

        dataGridView1.DataSource = Obj;
    }
private void Form1\u加载(对象发送方,事件参数e)
{
Book1=新书(001,“Java”,“Harbart”);
Book Book2=新书(002,“C”,“巴拉古鲁”);
string[]BookArray=新字符串[10];
BookArray[0]=Book1.ToString();
BookArray[1]=Book2.ToString();
List Obj=新列表();
对象添加(第1册);
对象添加(第2册);
dataGridView1.DataSource=Obj;
}

这不会给出任何错误,但也不会在数据网格中显示任何数据。我有一种感觉,我在两者之间错过了什么。关于如何将数据绑定到数据网格的说明将非常有用。

DataGridView需要公共属性来自动生成其列。它不适用于公共或私有字段

将您的类更改为:

public class Book
{
    public int bookID { get; set; }
    public string bookName { get; set; }
    public string athourName { get; set; }

    public Book(int BookID, string BookName, string AuthorName)
    {
        bookID = BookID;
        bookName = BookName;
        athourName = AuthorName;
    }
}

这使用了自动属性,但您当然也可以使用直接语法。

非常感谢,伙计……我知道了。很高兴我的回答对您有所帮助-要向其他人表明它确实如此,您可以单击箭头上的复选标记。当它为绿色时,表示它是可接受的答案。此外,一旦你有足够的声誉,你可以投票给其他对你有帮助的答案。