DataGridView生成没有数据的行

时间:2016-12-02 21:40:56

标签: c# winforms datagridview

我在这里和Google搜索过,但仍无法找到答案。我正在玩亚马逊的API,我正在制作一个简单的Windows窗体来尝试在DataGridView中显示数据。 GridView为我得到的10个结果生成了10行,但是没有用实际数据填充行。他们只是空白。

下面的代码是一个返回DataTable的方法(GetResults)。我没有展示所有内容,因为上面有一堆代码来获取数据。

            DataTable dt = new DataTable();
            dt.Columns.Add("ASIN", typeof(string));
            dt.Columns.Add("Title", typeof(string));

            // write out the results
            foreach (var item in response.Items[0].Item)
            {
                Product product = new Product(item.ASIN, item.ItemAttributes.Title);
                Console.WriteLine(product.ASIN);
                var dr = dt.NewRow();
                dr["ASIN"] = product.ASIN;
                dr["Title"] = product.Title;
                dt.Rows.Add();
            }
            return dt;
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            dgvProducts.AutoGenerateColumns = false;
            dgvProducts.DataSource = GetReults();
        }

我知道它正在获取信息,因为我正在将它写入控制台并且它正确显示。

我也有这个产品的基本类:

public class Product
    {
        private string asin;
        private string title;

        public Product() { }

        public Product(string newAsin, string newTitle)
        {
            this.asin = newAsin;
            this.title = newTitle;
        }


        public string ASIN
        {
            get { return asin; }
            set { asin = value; }
        }

        public string Title
        {
            get { return title; }
            set { title = value; }
        }

我已尝试设置AutoGenerateColumns = false并自行设置列数据绑定,但这也没有做任何事情。

1 个答案:

答案 0 :(得分:2)

您正在向表中添加一个空行,而不是添加新创建的行。

Change
     dt.Rows.Add();
To
     dt.Rows.Add(dr);