gpt4 book ai didi

c# - 如何使用 DataGridView 显示此数组的内容?

转载 作者:太空狗 更新时间:2023-10-29 21:40:13 26 4
gpt4 key购买 nike

我创建了一个二维字符串数组并填充了它。我尝试像这样将它绑定(bind)到 DataGrid 控件:

string[][] Array = new string[100][];
dataGridView.DataSource = Array;

我没有看到数组的内容,而是看到以下列:Length、LongLenth、Rank、SyncRoot、IsReadOnly、IsFixedSize、IsSyncrhonized。

因此它不显示数组的内容,而是显示数组的属性。我做错了什么?

最佳答案

当您允许网格控件自动生成列时,它基本上会枚举该对象的属性并为每个属性创建一列。它无法知道您想要将其显示为数组值的网格。

您需要从数组中创建一个新对象(例如类的可枚举列表),并将要绑定(bind)到的属性作为列。一种快速的方法是使用匿名类型,使用 LINQ 查询构建。像这样的东西:

string[][] Array = new string[100][];
for(int i = 0; i < 100; i++) // Set some values to test
Array[i] = new string[2] { "Value 1", "Value 2" };

dataGridView.DataSource = (from arr in Array select new { Col1 = arr[0], Col2 = arr[1] });
Page.DataBind();

在这里,我们遍历数组的所有 100 个元素。每个元素都是 2 个字符串的数组。我们正在从这两个字符串中创建一个匿名类型。此类型有两个属性:Col1Col2Col1 将被设置为数组索引 0,而 Col2 将被设置为数组索引 1。然后,我们将构建匿名类型枚举的网格。这看起来像:

enter image description here

当然,您可以通过将 AutoGenerateColumns 设置为 False 并填充 Columns 集合来准确定义列的创建方式。这也可以在您的 ASPX 文件中以声明方式完成。

关于c# - 如何使用 DataGridView 显示此数组的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com