イメージソースがローカルストレージに存在するかどうかをコンバーターで確認しようとしています。そうでない場合は、外部URLを使用してください。
<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を返す必要があります。
前もって感謝します。