在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
我看到图片有新尺寸,但在列表框旧图片中。
为什么图片不刷新?
答案 0 :(得分:1)
var img = new BitmapImage();
img.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
img.UriSource = new Uri(path);