如何将图像从csv文件加载到Windows Phone?

时间:2013-11-11 13:17:26

标签: c# .net sqlite windows-phone-7 windows-phone-8

我有一个制表符分隔的文本文件,其中包含19列和大约45000行。我将此数据导入sql server 2005并导出到csv文件中。在此表中有一个名为“icon_url”的列,其中包含许多大小为100x100px的jpeg链接。我需要做的是,我需要将此数据作为网格视图显示如下。快速加载此数据的最佳方法是什么? csv格式是否适合加载数据?请详细说明。

enter image description here

1 个答案:

答案 0 :(得分:2)

不,csv不是一个“好”的格式。不过,这是一种简单的格式。

如果你只想存储一些不会改变的图像URI,你可以将它存储在一个txt文件中(每个uri一行)......这个解决方案更简单(和csv文件相当) ,但“更安全”:没有人会像创建一个新列或其他可能与excel一样的错误做错误。

...或者你想要一些更易于维护的东西,你可以使用一个嵌入式数据库(如果你想让数据在你的手机上休息)。您可以在Google like this one

上找到有关它的一些教程

或者您可以使用XmlSerializer class

加载序列化数据

要回答你的问题,那个(丑陋的)代码应该可以解决问题(未经测试):

<强>的Xaml

<ItemsControl x:Name="items">
     <ItemsControl.ItemsPanel>
         <ItemsPanelTemplate>
               <UniformGrid Columns="4"/>
         </ItemsPanelTemplate>
     </ItemsControl.ItemsPanel>
     <ItemsControl.ItemTemplate>
         <DataTemplate>
                        <Image Height="{Binding ActualWidth,RelativeSource={RelativeSource Self}}" Source="{Binding}" />
         </DataTemplate>
     </ItemsControl.ItemTemplate>
</ItemsControl>
            </ItemsControl>

<强> CS

items.ItemsSource = File.ReadAllLines("yourCsvFile.csv").Select(s=>s.Trim(';')).Skip(1); // skip the header...