Windows手机8图像无法刷新(带有绑定的ListBox)

时间:2014-01-11 19:09:41

标签: binding windows-phone-8

在MainPage ListBox上

的DataTemplate

<StackPanel>
 <Image Source="{Binding Image}" Height="160"></Image>
 <TextBlock Text="{Binding DisplayName}" />
</StackPanel>

装订

System.Diagnostics.Debug.WriteLine("Refresh()");
ListBox.DataContext = db.Contacts.OrderBy(x => x.Order).ToList();

图像绑定

public ImageSource Image 
{ 
    get
    {
        string path = ApplicationData.Current.LocalFolder.Path + "Image";
        if (System.IO.File.Exists(path))
        {
            System.IO.FileInfo fi = new System.IO.FileInfo(path);
            System.Diagnostics.Debug.WriteLine("size: {0} time: {1}", fi.Length, fi.CreationTime);
            return new BitmapImage(path);
        }
        var image = new BitmapImage();
        image.SetSource(Application.GetResourceStream(new Uri("Assets/Images/empty.png", UriKind.Relative)).Stream);

        return image;
    }

从MainPage打开SettingPage。

在SettingPage

  • 更改DisplayName

  • db.Contacts

  • 添加和删除项目
  • ApplicationData.Current.LocalFolder.Path +“Image”已替换为新的图片文件;

返回主页

  • DisplayName - refresh

  • 新项目 - 已添加<​​/ p>

  • 已移除的项目 - 已删除

但图片显示OLD

如果重启应用 - 显示新图片

在诊断中

启动MainPage

刷新()

size:96005 time:11.01.2014 20:38:10

打开设置页面 - 更改图像 - 返回主页

刷新()

尺寸:132404时间:11.01.2014 21:05:00

我看到图片有新尺寸,但在列表框旧图片中。

为什么图片不刷新?

1 个答案:

答案 0 :(得分:1)

Found the solution here

var img = new BitmapImage();
img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
img.UriSource = new Uri(path);