我試圖用轉換器檢查本地存儲器中是否存在圖像源。如果沒有去與外部網址。如何在WinRT中創建文件存在轉換器
<Image Source="{Binding Image, Converter={StaticResource ImageCacheConverter}}"/>
這是我的轉換器至今:
public object Convert(object value, Type targetType, object parameter, string language)
{
return IfFileExist((string)value, "localimage.png");
}
public async Task<string> IfFileExist(string value, string filename)
{
var folder = ApplicationData.Current.LocalFolder;
var getFilesAsync = await folder.GetFilesAsync(CommonFileQuery.OrderByName);
var file = getFilesAsync.FirstOrDefault(x => x.Name == filename);
if (file != null)
{
return "ms-appdata:///local/" + filename;
}
return (string)value;
}
我面對的是具有的IValueConverter內異步的主要問題。但我需要返回IfFileExist來更改圖像源。
在此先感謝。
爲什麼'IfFileExist'' async'無論如何? –
原因await folder.GetFilesAsync(CommonFileQuery.OrderByName); – nicruo
您是否確定要將潛在的緩慢操作作爲綁定的一部分?如果文件被移動,我會緩存信息並添加一些錯誤處理。這種方法是「異步」的原因是有原因的! –