列表框的堆栈面板中的访问控制

时间:2013-04-19 12:57:10

标签: windows-phone-7 xaml

我有这个xaml

<ListBox x:Name="listBox"
         ScrollViewer.HorizontalScrollBarVisibility="Auto"
         Tap="listBox_Tap">
  <ListBox.ItemsPanel>
    <ItemsPanelTemplate>
      <StackPanel Orientation="Horizontal" />
    </ItemsPanelTemplate>
  </ListBox.ItemsPanel>
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Vertical">
        <Image Name="cPix"
               Source="{Binding Image}"
               Stretch="None"
               Margin="0,0,5,5"
               ToolTipService.Placement="Bottom"
               ToolTipService.ToolTip="{Binding Name}" />
        <TextBlock Text="{Binding Name}"
                   HorizontalAlignment="Center"
                   Foreground="Black" />
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

这个概念是,我希望列表框延迟加载图像,首先会有一个占位符图像,当图像完成下载时,占位符让位于下载的图像。

任何帮助?

1 个答案:

答案 0 :(得分:1)

您可以在ViewModel中解决此问题。这是一个伪代码示例:

public BitmapImage Image
{
    get
    {
        if (_image == null)
            ImageManager.LoadImageAsync(_imageUri).ContinueWith(t=> Image = t.Result);
        return _image;
    }
    set
    {
        _image = value;
        NotifyPropertyChanged("Image");
    }
}

您的ImageManager将异步加载图片,无论是来自缓存,IsolatedStorage还是网页,完成后,它将完成内部Task