Listview项目,用于将文本从第1页更改为第2页

时间:2014-08-19 18:23:43

标签: c# windows windows-phone-7

我正在使用Visual Studio 2012(c#和XAML)并创建Windows手机应用程序

我的第1页上有一个列表视图,当点击时列表视图第1项时会出现一个图像。

这也发生在另一个项目和我想要的是当他们点击列表视图中的值,当他们点击出现在图片中弹出的图片时出现的图片时将他们带到另一页面第一页

例如,在列表视图项目1中单击时,Jk罗琳的图像显示在右侧,如果用户点击该图像,则会转到第二页(工作正常)但是当我点击图片上的图片时第一页我希望将文本加载到我在第二页上创建的文本框中,以便用户看到关于该作者的详细描述。 (所以我希望根据用户选择的listview项目显示不同的文本)

以下是我的代码

第一页

public void AuthorList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (AuthorList.SelectedIndex == 1)
{

BitmapImage Dostoyevsky = new BitmapImage(new Uri("dostoyevsky.jpg",UriKind.Relative));
AuthorImage.Source = Dostoyevsky;
AuthordescriptionText.Text = @"Born: 11 November 1821
Died: February 9 1881 of Epilepsy, Emphysema

Dostoyesky is one of the greats of Russian literature with novels such as Crime and Punishment, The Idiot
Demons and The Brothers Karamazov";


}
else if (AuthorList.SelectedIndex == 2)
{
BitmapImage Tolstoy = new BitmapImage(new Uri("tolstoy.jpg", UriKind.Relative));

AuthorImage.Source = Tolstoy;

AuthordescriptionText.Text = @"Born: 9 September 1828
Died: 20 November 1910 (Pneumonia)
Tolstoy is usually remembered as the man who created the masterpiece
War & Peace which is over 1000 pages, his other works include Anna karanina and his trilogy Childhood, boyhood
and youth which is based on his experiences in the Crimean war";


}

else if (AuthorList.SelectedIndex == 3)
{
BitmapImage Turgenev = new BitmapImage(new Uri("turgenev.jpg", UriKind.Relative));
AuthorImage.Source = Turgenev;


}

}

private void GoToAuthorPage(object sender, RoutedEventArgs e)
{

}

public void ImageTapTodifferent(object sender, GestureEventArgs e)
{
if (AuthorList.SelectedIndex == 1)
{





}
NavigationService.Navigate(new Uri("/AuthorPage.xaml", UriKind.Relative));

}

private void UpdateImage(object sender, EventArgs e)
{
AuthordescriptionText.Opacity = 50;
}



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

}

}
}

第二页

private void BackButton(object sender, RoutedEventArgs e)
{

NavigationService.GoBack();



}

private void OnTapAuthorPage(object sender, System.Windows.Input.GestureEventArgs e)
{



AuthorDescrptionLong.Text = @"

Quote: If you want to be happy, be.


}
}
} 

1 个答案:

答案 0 :(得分:1)

看到你的代码之后,我认为你没有采用写作方式。但是你将学习经验。所以我建议你为你的应用程序使用MVVM Pattern。尝试制作一个遵循mvvm模式的示例应用程序并使用绑定。

所以基本上尝试GalaSoft MVVM Toolkit nuget包并安装它。之后,您应该为两个单独的页面创建两个ViewModel(最简单的方法),例如Page1ViewModelPage2Viewmodel

对于您的简单用法,Page2ViewModel中的字符串类型属性应绑定到第二页'AuthorDescrptionLong.Text'。

现在,您可以使用MessengerClass在Viewmodels之间进行通信。

我在这里已经提到了很多。所以请阅读这些链接以获得指导。现在是学习新东西的时候了:)

我不知道这是你问题的答案,但如果你正在开发Windows手机,那么请了解我的建议。 快乐学习:)