繁体   English   中英

清单 <int> collecion不能用作DataGrid的数据源

[英]List<int> collecion cannot be used as datasource as DataGridView

我试图在Windows窗体应用程序中将List对象分配给DataGridView的数据源。 但是它显示了网格中的空数据。 有什么原因吗?或者我有什么遗漏吗?

List<int> sample = new List<int>();
sample.Add(1);
this.dataGridView1.DataSource = sample;

但是,如果我将“列表”集合分配给网格,它将按以下方式工作,

List<string> sample = new List<string>();
sample.Add("1");
this.dataGridView1.DataSource = sample;

在此处输入图片说明

之所以起作用,是因为DataGridView寻找要在对象上显示的属性。 字符串具有一个属性,即长度,因此显示在网格上。 整数没有任何属性。

为了使其工作,您可以创建一个具有int类型的属性的新类。 然后,您可以将这些自定义对象的列表提供给DataGridView并控制显示的内容。

编辑: 此答案有一个有关如何解决您的问题的示例。

DataGridView要求列表中的对象具有属性。 字符串具有属性“长度”,因此将其显示出来。 数字1是字符串的长度,而不是字符串的内容。

如果您不想创建新类,则可以使用如下匿名类型:

List<int> sample = new List<int>();
sample.Add(1);
this.dataGridView1.DataSource = sample.Select(k=> new {Value = k}).ToList();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM