我从c#.net应用程序调用Matlab函数。以下代码调用函数,该函数返回包含字符串和双精度的二维数组。
object result = null;
matlab.Feval("matlabTest", 1, out result);
如果我在调试时将鼠标悬停在result
上,我可以看到result
{object[1]}
是一个包含{object[53,13]}
字符串和双精度的正确二维数组。如何在DevExpress result
中显示对象GridControl
?
答案 0 :(得分:1)
绑定到二维数组并不特定于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;
答案 1 :(得分:0)
参考文档示例:How to bind the XtraGrid to a two-dimensional array
XtraGrid本身不支持这种数据源。 但是,您可以创建一个包装类,它实现了 必要的接口,并通过它们提供对阵列数据的访问。在 在这个例子中,我们为二维数组创建了一个通用的包装器 实现IList和ITypedList接口的基本成员。
由于@Gosha_Fighen向您展示了一个示例,该示例还将该二维数组转换为XtraGrid支持的数据源。您必须将此数组转换为IList或Data表,以将其与网格控件绑定。
在指定的示例中,我们传递数组,它将转换为IList的类型。
希望这个帮助