我有一个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;
}`
答案 0 :(得分:0)
为了达到您的要求,您还必须将photoCollection全局提供给Photogallery页面。 您可以通过从MainPage.xaml.cs页面将photoCollection(用于绑定到Listbox)的副本分配给App.xaml.cs的albumImages来完成此操作
注意:您的代码中存在一些更改(我不确定是谁做的),但代码非常接近工作。