使用JSON显示Assets中的图像 - Windows Phone 8

时间:2014-11-16 22:32:57

标签: c# json windows-phone-8 windows-phone

我正在我的Assets文件夹中创建一个包含大量本地内容的WP8应用程序。所以我使用的是存储在JSON文件夹中的JSON文件。

我已经能够非常轻松地将JSON解析为C#,现在我正在尝试在列表中显示数据。我没有显示标题的问题但我无法显示图像,即使我有文件名。

我的图片存储在"资产/内容/ mediaXXX.jpg";

ListViewModel:

 public class ListViewModel
    {
        public string Title { get; set; }
        public string Subtitle { get; set; }
        public BitmapImage ListImage { get; set; }
    }

XAML

 <ListBox Margin="0,1,0,0"
                 Height="730"
                 x:Name="MainList">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid Height="120"
                      Width="480">
                        <StackPanel Orientation="Horizontal">
                            <Image HorizontalAlignment="Left"
                               Source="{Binding ListImage}"
                               Margin="12"
                               Stretch="UniformToFill"
                               Width="130"/>
                            <Grid>
                                <TextBlock x:Name="ListItemTitle"
                                           Text="{Binding Title}"/>
                                <TextBlock x:Name="ListItemSubTitle"
                                       Text="{Binding Subtitle}"/>
                            </Grid>
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

我的C#页面

    BitmapImage image = new BitmapImage(new Uri(@"Assets/Content/" + photo.filename + ".jpg", UriKind.Relative);
    l.ListImage = image;

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

代码应该有效。只有可能出现的问题是ListBox数据绑定定义不正确。

我没有看到任何.ItemsSource =ItemsSource={Binding some_collection}

另一件事是确保photo.filename返回正确的文件。

设置字符串debug_string =&#34; Assets / Content /&#34; + photo.filename +&#34; .jpg&#34 ;;

确保一切正确。


最后一件事是确保文件实际位于项目内的Assets文件夹及其

BuildAction设置为Content

喜欢这样

enter image description here