[英]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.