是否有一种智能方法可以绑定包含要在Collection<string>
中显示的图片网址的FlipView
?
或者我是否必须在Collection<Image>
?
答案 0 :(得分:5)
您可以使用将Source
内的Image
ItemTemplate
属性绑定到<FlipView.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" />
</DataTemplate>
</FlipView.ItemTemplate>
flipView.ItemsSource = imageUrls;
的网址:
{{1}}
An example在FlipView中显示来自Bing的图像。
答案 1 :(得分:0)
我知道这个答案相当晚,但你也可以绑定到一组图像。实现此目的的最佳方法是使用可观察的位图集合而不是集合。在视图模型中,创建一个返回可观察位图集合的属性
// defines the binding property to the flipview
private ObservableCollection<BitmapImage> _pictureGallery;
public ObservableCollection<BitmapImage> PictureGallery
{
get { return _pictureGallery; }
set
{
if (_pictureGallery != value)
{
_pictureGallery = value;
onPropertyChanged("PictureGallery");
}
}
}
// This defines the property change event
public event PropertyChangedEventHandler PropertyChanged;
private void onPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
在您的xaml中,您可以像这样定义您的flipview
<Border Background="White">
<FlipView x:Name="flipView" ItemsSource="{Binding PictureGallery}" Visibility="Visible" >
<FlipView.ItemTemplate>
<DataTemplate>
<Image Width="200" Height="200" Source="{Binding}" Stretch="UniformToFill" />
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
</Border>
注意:根据您想要如何创建位图图像,您有一个文件流来设置BitmapImage的来源
BitmapImage BitImage = new BitmapImage();
BitImage.SetSource(stream);