プロパティアクセサ[Windowsストアアプリ/メトロアプリ]でAwaitableメソッドの呼び出し:は(ものを簡素化するために、私はコードを剥ぎ取られている)私は、カスタムクラスを持っている
public class AlbumItem
{
public StorageFile AlbumThumbnail { get; set;}
}
私はListViewコントロールにこれをバインドする場合:
<ListView.ItemTemplate>
<DataTemplate>
<Grid Height="100" Background="#FFabe372">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Source="{Binding AlbumSource}" Margin="10" Stretch="Uniform"></Image>
<TextBlock Margin="20 5" Grid.Column="1" Style="{StaticResource AlbumListViewItemStyle}" Text="{Binding AlbumDisplayText}"></TextBlock>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
私はGet
のみのプロパティとしてAlbumSource
を実装するために考えられてきたようにImage
のソースは、AlbumSource
に設定されている:
public class AlbumItem
{
public StorageFile AlbumThumbnail { get; set;}
public BitmapImage AlbumSource
{
get
{
BitmapImage bmp = new BitmapImage();
bmp.SetSource(await AlbumThumbnail.OpenReadAsync());
return bmp;
}
}
}
アクセサーメソッドでawait
キーワードを使用することはできません。同時に、プロパティスタブをasync
メソッドとして宣言することはできません。
誰かが正しい方向を指すことができますか?私は後でConverter
を試しているかもしれません。ありがとう!
ありがとう!私は考えを持っていたが、Flavienの方法は私の即時の必要性を解決した。私はあなたのアプローチを探り、私がそれを立ち上げて、それに従うことができるかどうかを見ていきます。 –
+1これはより正確な答えです。 'async'プロパティが存在しないという技術的な理由はありません。 「非同期プロパティ」はプロパティのコンセプトに反するため、設計上の決定でした。 –
これまでのところ、私はこのメソッドを使ってプロパティを実装していますが、それは私のUIを詰まらせるものではありません!本当にありがとう! –