मैं एक कस्टम वर्ग है में Awaitable तरीके (सामान को आसान बनाने, मैं कोड को छीन लिया है):कॉलिंग संपत्ति Accessor [Windows स्टोर ऐप्स/मेट्रो Apps]
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>
Image
के स्रोत, AlbumSource
के लिए निर्धारित है के रूप में मैं AlbumSource
एक Get
-only संपत्ति के रूप में लागू करने के लिए सोचा है:
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
कोशिश कर रहा हूं। धन्यवाद!
धन्यवाद! मुझे विचार मिला, लेकिन फ्लैवियन की विधि ने मेरी तत्काल आवश्यकता को हल किया। मैं आपके दृष्टिकोण का पता लगाऊंगा और देख सकता हूं कि मैं इसे प्राप्त कर सकता हूं और इसके बाद काम कर रहा हूं। –
+1 यह अधिक सही उत्तर है। कोई तकनीकी कारण नहीं है कि 'async' गुण मौजूद नहीं हो सकते हैं; यह एक डिजाइन निर्णय था क्योंकि एक "असीमित संपत्ति" संपत्ति की अवधारणा के खिलाफ जाती है। –
हाँ, मैंने इस विधि का उपयोग करके अब तक मेरे गुणों को लागू किया है, और हाँ, यह मेरे यूआई को दबा नहीं देता है! बहुत बहुत धन्यवाद! –