1

SampleDataソースからの画像を含むListBoxバインドがあります。ListBoxアイテムを選択したときに、次のページに画像を表示したいので、ナビゲーションでSelectedIndexを渡しましたが、画像を取得または表示できません。私のコードは以下のとおりです:`

//AlbumImages.cs

パブリッククラスAlbumImages:ObservableCollection {

}

//AlbumImage.cs

public class AlbumImage {public string title {get; セットする; }

    public string content { get; set; }  
}

//App.xaml.cs

    private static MainViewModel viewModel = null;

    public AlbumImages albumImages = new AlbumImages();

    public int selectedImageIndex;

//MainPage.xaml.cs

    private void listBoxPhoto_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
    {
        if (listBoxPhoto.SelectedIndex == -1) return;

        this.NavigationService.Navigate(new Uri("/Photogallery.xaml?SelectedIndex=" + listBoxPhoto.SelectedIndex, UriKind.Relative));
    }

//Photogallery.xaml.cs

    // Reference to App

    private App app = App.Current as App;

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {

    base.OnNavigatedTo(e);

        IDictionary<string, string> parameters = this.NavigationContext.QueryString;

        if (parameters.ContainsKey("SelectedIndex"))
        {
            app.selectedImageIndex = Int32.Parse(parameters["SelectedIndex"]);

        }
        else
        {
            app.selectedImageIndex = 0;
        }
    LoadImage();
}
     private void LoadImage()
    {
    BitmapImage bitmapImage = new BitmapImage();
    bitmapImage.UriSource=new Uri(app.albumImages[app.selectedImageIndex].content, UriKind.RelativeOrAbsolute);
    image.Source = bitmapImage;
}`
4

1 に答える 1

0

要件を達成するには、photoCollectionをフォトギャラリーページでもグローバルに利用できるようにする必要があります。これを行うには、photoCollection(リストボックスへのバインドに使用している)のコピーをMainPage.xaml.csページからApp.xaml.csのalbumImagesに割り当てます。

注:質問でコードにいくつかの変更が加えられましたが(誰がそれらを行ったかはわかりません)、コードはほぼ機能しています。

于 2012-05-30T09:46:32.580 に答える