Windows ストレージからImage
ビューのコントロールに画像をバインドしています。コードは次のとおりです: (Images
はObservableCollection
)
// Loading images from storage
foreach (var imagesVM in Images)
{
var img = new BitmapImage();
var tmp = await ImageHelpers.LoadImageFromStorageAsync(
imagesVM.name);
if (tmp != null)
{
img.SetSource(tmp);
imagesVM.Logo = img;
RaisePropertyChanged(() => imagesVM.Logo);
RaisePropertyChanged(() => Images);
}
}
LoadImageFromStorageAsync
画像が見つからない場合、私のメソッドは null を返します。
私の問題は、画像がロードされたときにビューが更新されないことです.要素をドラッグアンドドロップすると、要素が更新され、画像が表示されます.ここに私のバインディングがあります:
<StackPanel Orientation="Horizontal">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
<Image Source="{Binding Logo, Mode=TwoWay}" Stretch="UniformToFill" />
</Border>
<StackPanel Margin="20,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="{Binding Brand}"/>
<TextBlock Text="{Binding Name}" Margin="0,5,0,0"/>
</StackPanel>
</StackPanel>
更新時に表示されるため、バインディングはうまく機能します(また、戻ってこのページを再度開いたときにも)
さらに奇妙なことに、私の画像が表示されることがあります...
推測はありますか?私はそれが何かだと思いますRaisePropertyChanged
...