从C#导航中的ListBox SelectedIndex获取图像源

时间:2012-05-30 06:44:21

标签: c# windows-phone-7

我有一个ListBox绑定包含来自SampleData源的图像。在选择ListBox项目时,我想在下一页显示图像,所以我在导航时传递了SelectedIndex,但我无法获取图像或显示它。我的代码如下:`

// AlbumImages.cs

公共类AlbumImages:ObservableCollection     {

}

// AlbumImage.cs

公共类AlbumImage     {         公共字符串标题{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;
}`

1 个答案:

答案 0 :(得分:0)

为了达到您的要求,您还必须将photoCollection全局提供给Photogallery页面。 您可以通过从MainPage.xaml.cs页面将photoCollection(用于绑定到Listbox)的副本分配给App.xaml.cs的albumImages来完成此操作

注意:您的代码中存在一些更改(我不确定是谁做的),但代码非常接近工作。