我创建了一个带有 CheckBox 列的 DataGridView,这样我就可以检查一行或另一行。
作为 DataGridView 的数据源,我传递了一个字符串列表。传递列表时,我希望得到一个 datagridview,它将显示我作为第一列、复选框列和第二列列表的字符串,但不,它显示我的长度而不是字符串:
在 Length 列中,我应该(或希望)显示通过列表传递的字符串,而不是它们的长度。
“选择”栏的生成方式如下:
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
column.HeaderText = "Seleccion";
column.Name = "Seleccion";
column.TrueValue = true;
column.FalseValue = false;
column.IndeterminateValue = false;
column.ThreeState = false;
column.ValueType = typeof(Boolean);
dgRemotas.Columns.Add(column);
并添加字符串列表,我执行以下操作:
dgRemotas.DataSource = list;
列表定义为:
public List<string> list;
如何显示字符串而不是它们的长度?
默认情况下,它
DataGridView
的属性AutoGenerateColumns
设置为 true。打开该属性后,它会DataGridView
尝试获取DataSource
您传递给它的对象的属性。但是,事实证明它string
只有一个属性,那就是Length
。这就是它向您显示该列的原因。要修复它,第一步是禁用
AutoGenerateColumns
:然后,您必须添加必须显示
string
列表的第二列:相信他
DataPropertyName
。我们必须传递DataSource
一个具有名为 属性的对象列表Valor
,因此我们执行以下操作:通过这种方式,我们生成了一个对象列表,该列表具有一个名为的属性
Valor
,其中包含要显示的文本。默认情况下
DataGridView
,它将查看列表中容器对象的属性。因为string
只有一个属性 -length
。因此,您需要一个字符串的包装器,如下所示:接下来,将对象绑定
List<StringValue>
到DataGridView
.注意:从这个链接获得的答案。