2016-09-18 6 views
0

私はViewModelにTask<StorageFile>という複数のStorageFileを用意しています。私はビューにImageをバインドしたいと思います。UWP - MVSに従うImageSourceへのStorageFile

BitmapImageは、XAML名前空間にあり、UIスレッド(これは失敗します)を必要とするため、ViewModelで作成しないでください。

この問題はどのように解決する必要がありますか? ... StorageFileがある非同期を開くなど、ValueConverterを実行することはできません使用

PS:私はちょうど使用してみ...

答えて

1

を、StorageFileがなLocalCacheフォルダにあるURIを使用することはできません

<ListView ItemsSource="{Binding ImageItems}" 
      Grid.Row="1"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition/> 
        <RowDefinition/> 
       </Grid.RowDefinitions> 
       <TextBlock Text="{Binding Path}"/> 
       <Image Grid.Row="1"> 
        <Image.Source> 
         <BitmapImage UriSource="{Binding Path}"/> 
        </Image.Source> 
       </Image> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 

それは、私はそれがUWPサンドボックスの周りハッキングのように感じ、これが機能することにショックを受けていますpublic List<StorageFile> ImageItemsプロパティ

+0

ImageItemsStorageFileクラスからPathプロパティ。私が見たすべてのソリューションは、コードでImageSourceを作成しています。これにより、XAMLはそれを可能にします。また、あなたは 'Image.Source'を直接バインディングに設定できるように見えます.BitmapImageは必要ありません。ありがとう! – ManIkWeet

+0

'Image.Source'から' BitmapImage'に拡大されましたので、ユーザーは 'DecodePixelWidth'プロパティー(メモリリークの問題) –

+0

メモリリークの問題を見つけることはできません。解像度は、メモリが浪費されることを意味します。私のイメージは常にディスプレイの解像度を下回っています。 – ManIkWeet

関連する問題