在Converter中显示StorageItem缩略图

用户名

在Windows Phone 8.1运行时中,我们只能使用GetThumnailAsync()方法异步获取StorageItem的缩略图。

我正在尝试显示特定文件夹中的文件列表,并为Converter列表中的每个项目设置了缩略图。

但是,转换器必须同步运行。那么有什么可以做的吗?

罗马斯

不要Converter中运行异步代码,而应在任务(GetThumbnail)完成后进行绑定。这是Stephen Cleary撰写的关于异步MVVM模式-应用程序:数据绑定的精彩文章

您会发现那里有一个我可以使用-的类NotifyTaskCompletion在代码中定义:

public NotifyTaskCompletion<BitmapImage> MyThumbnail { get; set; }
// run somewhere your async job:
MyThumbnail = NotifyTaskCompletion<BitmapImage>(file.GetThumnailAsync());

然后,您可以肯定地在xaml中使用一个转换器,该转换器将在任务返回其结果后立即运行:

<Image Source="{Binding MyThumbnail.Result}" Visibility="{Binding
  MyThumbnail.IsSuccessfullyCompleted, Converter={StaticResource BooleanToVisibilityConverter}}"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章