1

我正在尝试从 Excel 文件 (.xls) 中读取表格并将其显示在 DataGrid 中。该表具有未知维度,并且每列具有一种未知类型(字符串、双精度或整数)的值。

我通过 COM 访问该文件并将该表放在 ExpandoObjects 的 List<> 中。当我将 DataGrid.ItemSource 设置为 List 时,Grid 在视觉上仍然是空的。显式定义列及其数据绑定会产生应用程序无法在 ExpandoObjects 中找到指定属性的运行时消息。

如何在 GridView 中显示表格?我使用 Silverlight 5 RC,并希望有一种简单的方法来做到这一点。至少比我目前看到的 Silverlight 2 和 3 的解决方案更简单。

4

2 回答 2

0

如果它是动态的并且它没有实现ICustomTypeProvider,那么在 Silverlight 5 中它不会绑定。这真的很不幸,因为我们在 WPF 中有动态数据绑定,并且在可以知道属性的情况下(如 Expando),即使编写适用于任何 IDynamicMetaObject 提供程序的 CustomType 也不难,更不用说他们可以添加它对于 Expando,尤其是因为它是密封的。

所以底线是您需要编写自己的动态类型来实现 ICustomTypeProvider

于 2011-10-26T16:09:37.647 回答
0

我意识到 Vladimir Bodurov 的解决方案对我来说很好用。我用字典替换了 ExpandoObjects,并使用 Bodurov 的类将 List 转换为 DataGrid 可以处理的东西。

于 2011-10-27T13:21:29.013 回答