Silverlight ComboBox绑定到IEnumerable <bitmapimage>,其中从服务器下载图像</bitmapimage>

时间:2010-12-18 17:35:58

标签: c# silverlight asynchronous combobox bitmapimage

我遇到了将ComboBox绑定到IEnumerable<BitmapImage>的问题,其中图像存储在服务器上并按需下载。在实际发生绑定时,大多数图像尚未下载并导致ComboBox在其位置显示空选择。是否有一种简单的方法可以在下载完成时强制绑定图像进行更新。我想异步这样做;即,在将列表绑定到ComboBox之前,我不想等到它们全部下载。

欢迎所有建议,包括提出替代方法。

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题。我的黑客解决方案是将每个BitmapImage设置为虚拟Image控件的源。只要Image控件可见,它就可以工作。然后我只是在每个BitmapImage被“加载”后折叠图像。

答案 1 :(得分:0)

我正在研究类似的解决方案。我在组合框中显示图像并按需加载它的方式是,我将Image-Control定义为DataTemplate,并将Image-Control的Source绑定到相应图像文件的URL。

这种方式取决于Image控件加载Image on Demand(显示时)

<强> 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;}
}