我正在尝试在我的MVVM WPF应用程序中显示带有URL源的图像。我使用的Xaml是:
<ContentControl>
<Image Margin="5" Height="190" Source="{Binding CampaignMainImage}"/>
</ContentControl>
在我的视图模型中,我尝试将CampaignMainImage
与string
和BitmapImage
绑定在一起。在这两种情况下,图像源都来自Web URL。这两个都有效,我的应用程序成功显示了图像。
但是,在同一个应用程序中,我需要允许用户上传新图像。我这样做文件选择和ftp上传。我成功上传,并看到在PropertyChanged
事件被引发的地方遇到断点。
问题是,新图像的名称必须与旧图像相同,而WPF似乎正在缓存图像。即使我在应用程序中关闭该窗口并新建viewmodel
的实例,仍然会显示旧图像。当我关闭应用程序并再次运行时,将显示新图像。
如何停止此缓存行为?
修改
建议的副本解决了绑定到BitmapImage
(视图相关类型)的问题。正如下面评论中的 Tseng 所示,这是一个非MVVM解决方案,其中数据绑定查看相关类型不会破坏模型。更具体地说,问题是如何在不破坏MVVM模式的情况下完成的缓存行为。
答案 0 :(得分:0)
这个问题实际上已经被问及并回答了(感谢drcolombo指出)。但是(正如tseng所指出的),答案与MVVM模式无关,并且通过在视图模型中使用视图类型元素({{1}})来打破模式。
对于那些对非MVVM答案感兴趣的人,可以找到先前问题的链接here。
非MVVM解决方案是设置
{{1}}
创建位图图像时。