在c#windows phone中使用反序列化json数据的数据绑定图像链接

在c#windows phone中使用反序列化json数据的数据绑定图像链接,c#,json,windows-phone-7,serialization,binding,C#,Json,Windows Phone 7,Serialization,Binding,我有一些json数据,所以我反序列化了它,并将数据绑定到列表框,以文本块的形式显示数据……现在的问题是,我试图在同一个列表框中添加一个图像,并希望使用反序列化对象的数据绑定图像源 我是说 图像的链接包含反序列化数据中存在的一些文本,这些文本将随数据的更改而更改 有人能告诉我如何使用反序列化对象的数据,然后生成一个新字符串来传递图像源以将其绑定到列表框中的图像吗?? 先谢谢你 更新: 这是xaml的列表框部分 <ListBox x:Name="listdata" ScrollViewer.V

我有一些json数据,所以我反序列化了它,并将数据绑定到列表框,以文本块的形式显示数据……现在的问题是,我试图在同一个列表框中添加一个图像,并希望使用反序列化对象的数据绑定图像源

我是说 图像的链接包含反序列化数据中存在的一些文本,这些文本将随数据的更改而更改

有人能告诉我如何使用反序列化对象的数据,然后生成一个新字符串来传递图像源以将其绑定到列表框中的图像吗??

先谢谢你

更新:

这是xaml的列表框部分

<ListBox x:Name="listdata" ScrollViewer.VerticalScrollBarVisibility="Visible" ItemsSource="{Binding data}" Height="0" Margin="0,72,0,0">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" DataContext="{Binding}">
                        <Image Grid.Row="1" Height="50" HorizontalAlignment="Left" Name="image1" Stretch="None" VerticalAlignment="Top" Width="50" Source="{Binding PicLink}" />
                        <TextBlock Height="50" HorizontalAlignment="Left" Margin="12,6,0,0" Name="textBlock1" Text="{Binding name}" VerticalAlignment="Top" Width="Auto" TextAlignment="Center" TextWrapping="Wrap" />
                        <TextBlock Height="Auto" HorizontalAlignment="Left" Margin="6,42,0,0" Name="textBlock3" Text="{Binding timedata}" VerticalAlignment="Top" Width="Auto" MinHeight="0" TextWrapping="Wrap" />
                    </Grid>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

除了图像,一切都正常……当我替换PicLink以返回静态url而不是可变url时,图像部分也正常工作。如果您想显示来自web的图像,必须先下载它们。 这可能是列表的一个问题,因为它很耗时

看一看这个问题,看看如何做到这一点:

如果可以将图像包含到包中或以某种方式将其缓存在隔离存储中,那就更好了

更新:

public class Datum
    {
        public string timedata { get; set; }
        string part = string.Empty;
        public string parts { get { return part; } set { part = value; } }
        public string name { get; set; }
        public string PicLink { get { return string.Format("google.com/{0}/image",part); } }
    }
必须将类型为“BitmapImage”的属性添加到类中。(可能字节[]也可以工作,现在不知道,请尝试)这样您就可以将DataTemplate中图像的ImageSource绑定到此属性。如果您将这个类用于json序列化程序,那么它应该无关紧要,因为序列化程序将在反序列化时忽略它。为了更安全,不要用“DataMember”属性标记ist。它可能看起来像:

private string _urlString;
[DataMember]
public string UrlPart
{
    get { return _urlString;}
    set 
    {
        _urlPart = value;
        LoadImage(); // in this function you do the downloading stuff
    }
}

private BitmapImage _itemImage;
public BitmapImage ItemImage
{
    get {return _itemImage;}
    // you can also add a setter if needed
}

更具体地说,我只想使用c#object中的数据将数据绑定到xaml中的image元素……您是用json数据发送这些图像(位64编码的还是其他编码的),还是将它们存储在应用程序中(在手机上)?@dominikirschenhofer string parts=string.Empty;公共字符串部分{get{return parts;}set{parts=value;}}}公共字符串图像链接{get{return string.Format(“{0}/image”,parts);这是代码…所有这些代码都存在于同一个类中,部分是我反序列化的方法,然后使用它的值为图像创建链接,然后将imagelink绑定到xaml中的图像元素。有什么帮助吗???所以你的json字符串包含图像的url部分,你想使用这个url通过绑定i来显示它t到图像?据我所知,这不起作用。@DominikKirschenhofer是的,你是对的……你能告诉我为什么不可能……当我使用静态部分而不是字符串部分时,例如,如果我返回string.Format(“google.com/user/Image”);然后它工作得非常好,但是当我使用变量(如parts)编辑字符串时,它就不工作了每次运行应用程序时图像都会不断更改,因此我无法存储或缓存它们…..每次运行应用程序时我都必须下载它们我很害怕…因此请注意流量、时间和内存使用情况!希望nked问题向您展示了如何操作。您回复的链接向我展示了下载图像然后使用它的方法,但在我的情况下,我必须将图像的更改url传递给xaml的图像元素……我无法为其创建单独的方法,因为图像元素位于与deser绑定的列表框中序列化对象,因此我必须将图像url放在同一个类中……(因为我对c#和windows phone不熟悉,所以我的问题可能听起来很愚蠢……。任何回答都将有助于我学习一些东西,谢谢)我在我的方法中犯了一个非常愚蠢的错误…我错误地调用了一个不同的方法…我真是太愚蠢了,竟然没有看到…我的方法是正确的…无论如何,感谢您的回复并利用您的时间…问题解决了!!:)