0

我正在获取 Windows Phone 中的对象列表,并将它们显示在带有数据绑定的列表框中。某些图像 url 无效,因此在列表中添加每个对象后,我运行以下代码来检查和替换,如果无效

 private void CheckLinkUrl(Person p)
    {
            Uri filePath = new Uri(p.img_url);
            string correct = p.img_url;
            HttpWebRequest fileRequest = HttpWebRequest.CreateHttp(filePath);
            fileRequest.Method = "HEAD";
            fileRequest.BeginGetResponse(result =>
            {
                HttpWebRequest resultInfo = (HttpWebRequest)result.AsyncState;
                HttpWebResponse response;
                try
                {
                    response = (HttpWebResponse)resultInfo.EndGetResponse(result);
                }
                catch (Exception e)
                {
                    p.img_url = "http://somethingelse.com/image.jpg";

                }                    

            }, fileRequest);

    }

问题是它非常慢,加载每张图片有时需要 2 分钟以上(尽管 UI 保持响应,并且除了图片之外,其他所有内容都会立即显示在列表框中)

难道我做错了什么?我能让它跑得更快吗?

编辑:我尝试使用 imagefailed 事件并替换链接,加载图片的速度没有提高

4

1 回答 1

2

我在我的应用程序中为避免此问题所做的是,我已使用默认图像加载项目,图像源绑定到我的结果项目类型中的属性ImageSource。默认情况下,它返回默认图像。处理或下载完成后,图像源值更改为触发NotifyPropertyChanged事件的新图像,因此它会自动反映在 UI 上。我希望它对你有帮助。

于 2012-09-14T05:14:04.370 回答