2016-10-17 6 views
0

ピボットアイテムを動的に表示するためにピボットを使用しています。次のコードは、私がやっていることの単純化されたバージョンです。動的に追加されたPivotItemのイメージをプレロード

//.xaml 
<Pivot Name="PivotImages"> 
    <Pivot.ItemTemplate> 
     <DataTemplate> 
      <Image Name="ImageFull" Source="{Binding PhotoUrl}" /> 
     </DataTemplate> 
    </Pivot.ItemTemplate> 
</Pivot> 

//.xaml.cs 
private readonly ObservableCollection<PhotoPageViewModel> _photoPageViewModelList = new ObservableCollection<PhotoPageViewModel>(); 
PivotImages.ItemsSource = _photoPageViewModelList; 

//PhotoPageViewModel.cs 
private string _photoUrl; 
public string PhotoUrl 
{ 
    get { return _photoUrl; } 
    set 
    { 
     _photoUrl = value; 
     OnPropertyChanged("PhotoUrl"); 
    } 
} 

私は

PhotoUrlがコンストラクタで初期化され
_photoPageViewModelList.Add(new PhotoPageViewModel()); 

で新しいアイテムを追加します。このモデルは必要に応じて機能するようです。問題は、新しいピボット項目が選択されたときにImageFullがWebから画像をロードすることです。

私が達成したいのは、新しいピボットアイテムが追加されたときにイメージがロードされ、ピボットアイテムが選択されていない場合です。したがって、次のピボットアイテムにスワイプすると、既に読み込まれたイメージが表示されます。

編集:問題を解決するために間違った要素を使用している可能性があることに気付きました。ピボットは、スワイプアニメーションが完了したときに新しいアイテムのみを表示します。私が望むものは、目下のもののすぐ隣に目に見えるピボットアイテムです。写真アプリのように、左または右にスワイプするとすぐに次の写真を見ることができます。

+0

ビューモデルプロパティとしてURL文字列の代わりにImageSourceを使用しますか?その後、イメージをPhotoPageViewModelコンストラクタのBitmapImageにロードすることができます。 – Clemens

+0

私はImageSourceを使用して読み込み問題を解決すると思います。しかし、私は私の問題を解決するために間違った要素を使用しているかもしれないことに気づいた。ピボットは、スワイプアニメーションが完了したときに新しいアイテムのみを表示します。私が望むものは、目下のもののすぐ隣に目に見えるピボットアイテムです。写真アプリのように、左または右にスワイプするとすぐに次の写真を見ることができます。 –

答えて

1

ピボットは、使用したい要素ではありません。 代わりにFlipviewを使用してください。