FlipView:如何将Collection <string>绑定为ItemsSource </string>

时间:2013-03-16 14:07:51

标签: c# xaml windows-store-apps

是否有一种智能方法可以绑定包含要在Collection<string>中显示的图片网址的FlipView

或者我是否必须在Collection<Image>

中提供图片

2 个答案:

答案 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);