繁体   English   中英

将对象中的二维数组加载到devexpress gridcontrol中

[英]Load 2 dimensional array in Object into devexpress gridcontrol

我正在从ac#.net应用程序调用Matlab函数。 以下代码调用该函数,该函数返回包含字符串和双精度数的二维数组。

object result = null;

matlab.Feval("matlabTest", 1, out result);

如果在调试时将result悬停在result ,则可以看到result {object[1]}是一个适当的二维数组,其中包含字符串和双精度的{object[53,13]} 如何在DevExpress GridControl显示对象result

绑定到二维数组不是特定于WinForms。 如果使用标准DataGridView,则也不会获取数据。 您需要一个清单。 因此,将数组转换为列表以显示数据:

object[,] result = new object[10, 5];
for(int i = 0; i < 10; i++) {
    result[i, 0] = (double)i;
    result[i, 1] = "test";
    result[i, 2] = (double)i;
    result[i, 3] = "test";
    result[i, 4] = (double)i;
}
List<object> list = new List<object>();
for(int i = 0; i < result.GetLength(0); i++) {
    list.Add(new { Field1 = result[i, 0], Field2 = result[i, 1], Field3 = result[i, 2], Field4 = result[i, 3], Field5 = result[i, 4] });
}
gridControl1.DataSource = list;

在此处输入图片说明

请参考文档示例: 如何将XtraGrid绑定到二维数组

XtraGrid本身不支持这种数据源。 但是,您可以创建包装器类,该包装器类实现必要的接口并通过它们提供对数组数据的访问。 在此示例中,我们为二维数组创建通用包装,并实现IList和ITypedList接口的基本成员。

正如@Gosha_Fighen向您展示的示例,该示例还将二维数组转换为XtraGrid支持的数据源。 您必须将此数组转换为IList或Data表才能将其与网格控件绑定。

在指定的示例中,我们传递数组并将其转换为IList的类型。

希望这个帮助

暂无
暂无

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

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