2009-12-08 72 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