Binding Windows phone 8映像未刷新(带绑定的列表框)

Binding Windows phone 8映像未刷新(带绑定的列表框),binding,windows-phone-8,Binding,Windows Phone 8,主页上的列表框 数据模板 图像绑定 从主页打开设置页 在设置页面 更改显示名 添加和删除数据库联系人中的项目 ApplicationData.Current.LocalFolder.Path+“Image”替换为新的图像文件 返回主页 显示名称-刷新 新增项目-新增 已删除项目-已删除 但图像显示为旧的 如果重新启动应用程序-显示新图像 诊断中的 开始主页 刷新() 尺寸:96005时间:11.01.2014 20:38:10 打开设置页面-更改图像-返回主页 刷新() 尺寸:132

主页上的列表框

数据模板

图像绑定

从主页打开设置页

在设置页面

  • 更改显示名

  • 添加和删除数据库联系人中的项目

  • ApplicationData.Current.LocalFolder.Path+“Image”替换为新的图像文件

返回主页

  • 显示名称-刷新

  • 新增项目-新增

  • 已删除项目-已删除

但图像显示为旧的

如果重新启动应用程序-显示新图像

诊断中的

开始主页

刷新()

尺寸:96005时间:11.01.2014 20:38:10

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

刷新()

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

我看到图像有新的大小,但在列表框中是旧图像

为什么图像不刷新?

var img=new BitmapImage();
img.CreateOptions=BitmapCreateOptions.IgnoreImageCache;
img.UriSource=新Uri(路径);

您需要实现从DB/DataContext完全加载的INotifyPropertyChangedOn刷新/绑定集合。ListBox读取属性图像并获取新值,但显示旧值。什么时候调用PropertyChanged?在其他页面中更改了“来自图像的文件”属性。在我使用字符串路径创建图像文件之前,是否尝试将ImageSource绑定到包含图像url的字符串,或使用ListBox.ItemsSource属性设置项目源。图像未刷新(需要重新启动应用程序)。文件路径不更改,仅更改文件。这也适用于我从图像源api加载位图。当我从api url(重定向以提供新的真实url)加载“新”图像时,操作系统正在缓存原始图像,因此新图像没有显示,通过设置IgnoreMageCache,新图像显示。谢谢
<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;
    }