2009-12-08 128 views
1

我正在将其中一个更简单的应用程序移动到Silverlight中(这是一个学习练习)。由于我无法弄清楚如何将csv文件加载(或者绑定可能?)到数据网格(即,您可以将应用程序指向本地csv文件并将其显示给用户),我很快就陷入了僵局。我有样板代码来解析csv文件并返回一个数据表,但我很震惊地发现Silverlight甚至不支持DataTable(wtf!)。将CSV文件加载到DataGrid中

任何想法如何做到这一点?无论如何,人们如何将数据绑定到数据网格?

我使用的是VS2010中包含的Silverlight 3.0。

+0

您可能希望包括你使用Silverlight的版本。 – 2009-12-08 09:53:57

+0

好吧,看起来DataGrid接受一个列表对象作为“数据源”,这个列表可以容纳一个为数据网格中的每一列公开属性的类。这里的问题是,这不适用于可能是1列或100列以上的CSV文件... – Calanus 2009-12-08 10:29:04

+0

然后,我认为我可以创建一个包含字符串[]的列表,但当然datagrid最终会绑定到字符串的属性(Length,Rank,IsReadOnly等)arggh !! – Calanus 2009-12-08 10:44:02

回答

4

基督终于得到它的工作(可能有点kludgy寿)。所以,最后我用CSVReader(不是我的代码,从别人很久以前有缺口):

http://pastebin.com/f56674dfb

,然后我改编自这个绝妙的主意一些代码:

http://blog.bodurov.com/blog/Post.aspx?postID=27

糖化它一起,并最终想出:

http://pastebin.com/fb64198e

Thankyouverymuch!

最后,我适应的CSV读者使用该外观极好datatable

+0

建议您考虑将CVS阅读器代码移出代码隐藏。它真的不属于那里。由于几个原因,它应该是自己的班级。 – 2009-12-10 14:18:46

+1

与Vladimir Bodurov的示例相比,我发现这更简单,可以动态创建列http://slbindabledatagrid.codeplex.com/。 – 2010-03-03 04:39:53

+0

是的你是对的 - 最后我会使用slbindabledatagrid而不是Bodurov解决方案 – Calanus 2010-03-03 12:48:58