2010-12-18 3 views
3

ComboBoxをIEnumerable<BitmapImage>にバインドする際に問題が発生しました。この画像はサーバーに保存され、必要に応じてダウンロードされます。バインディングが実際に行われるとき、ほとんどの画像はまだダウンロードされていないため、ComboBoxは空の選択をその場所に表示します。ダウンロードが完了すると、バインドされたイメージを強制的に更新する簡単な方法はありますか?私はこれを非同期にしたいと思います。つまり、ComboBoxにリストをバインドする前に、それらがすべてダウンロードされるまで待つ必要はありません。Silverlight ComboBoxがIEnumerableにバインドされました<BitmapImage>画像がサーバーからダウンロードされる

代替案を提案するなど、すべての提案を歓迎します。

+0

イメージのダウンロードが完了した後、空の選択項目が空のままであるとお考えですか? – AnthonyWJones

+0

はい、まさにそれが起こっているのです。 – Jeffrey

+0

ObservableCollectionにバインドしてみましたか? – TerenceJackson

答えて

1

同様の問題が発生しています。私のハッキングされた解決策は、各BitmapImageをダミーImageコントロールのソースに設定することです。 Imageコントロールが表示されている限り、それは機能します。次に、すべてのBitmapImageが読み込まれた後で、Imageを折りたたむだけです。

0

私は同様の解決策に取り組んでいます。私がコンボボックスに画像を表示してオンデマンドでロードする方法は、DataTemplateとしてImage-Controlを定義し、Image-ControlのSourceを対応する画像ファイルのURLにバインドすることです。

この方法は、(それが表示されます)オンデマンドで画像をロードするためにImageコントロールまでit's

XAML:

<ComboBox Items="{Binding Images}"> 
    <ComboBox.ItemTemplate> 
    <DataTemplate> 
     <Image Source="{Binding ImageUrl}"/> 
    </DataTemplate> 
    </ComboBox.ItemTemplate> 
</ComboBox> 

のC#:

public class ImageViewModel{ 
    public string ImageUrl {get; set;} 
} 
関連する問題