无法返回同一页面两次。 c# Windows Phone 8.1
Can't go back to the same page twice. c# Windows Phone 8.1
我的 WP8.1 应用程序出现问题。我有一个 listView,当我点击项目时,它会带我进入一个包含详细信息的新页面,但是当我返回我的 listView 时,我可以重新点击相同的项目,但它不会带我到任何地方。
这是我在 MainPage.xaml.cs 中的 listView SelectionChanged 处理程序。
private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Person personneSelect = (Person)lvNom.SelectedItem;
Frame.Navigate(typeof(DetailPersonne), personneSelect);
}
这是我需要在 DetailPersonne.xaml.cs
中显示的页面背后的代码
public sealed partial class DetailPersonne : Page
{
public Person person;
public DetailPersonne()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
person = e.Parameter as Person;
if(string.IsNullOrEmpty(person.Nom) == true){
tbNom.Text = "Non renseigné.";
}
else{
tbNom.Text = person.Nom;
}
if (string.IsNullOrEmpty(person.Prenom) == true)
{
tbPrenom.Text = "Non renseigné.";
}
else{
tbPrenom.Text = person.Prenom;
}
我所做的唯一导航更改是处理 App.xaml.cs
中的硬件后退按钮
public App()
{
this.InitializeComponent();
this.Suspending += this.OnSuspending;
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if(rootFrame != null && rootFrame.CanGoBack)
{
e.Handled = true;
rootFrame.GoBack();
}
}
因此,如果有人解决了这个问题,那就太好了!提前致谢 ! :)
尝试重置所选项目,因为 SelectionChanged
没有触发,因为当您返回时选择没有改变。
private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(lvNom.SelectedItem != null)
{
Person personneSelect = (Person)lvNom.SelectedItem;
lvNom.SelectedItem = null;
Frame.Navigate(typeof(DetailPersonne), personneSelect);
}
}
我的 WP8.1 应用程序出现问题。我有一个 listView,当我点击项目时,它会带我进入一个包含详细信息的新页面,但是当我返回我的 listView 时,我可以重新点击相同的项目,但它不会带我到任何地方。
这是我在 MainPage.xaml.cs 中的 listView SelectionChanged 处理程序。
private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Person personneSelect = (Person)lvNom.SelectedItem;
Frame.Navigate(typeof(DetailPersonne), personneSelect);
}
这是我需要在 DetailPersonne.xaml.cs
中显示的页面背后的代码 public sealed partial class DetailPersonne : Page
{
public Person person;
public DetailPersonne()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
person = e.Parameter as Person;
if(string.IsNullOrEmpty(person.Nom) == true){
tbNom.Text = "Non renseigné.";
}
else{
tbNom.Text = person.Nom;
}
if (string.IsNullOrEmpty(person.Prenom) == true)
{
tbPrenom.Text = "Non renseigné.";
}
else{
tbPrenom.Text = person.Prenom;
}
我所做的唯一导航更改是处理 App.xaml.cs
中的硬件后退按钮 public App()
{
this.InitializeComponent();
this.Suspending += this.OnSuspending;
HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
Frame rootFrame = Window.Current.Content as Frame;
if(rootFrame != null && rootFrame.CanGoBack)
{
e.Handled = true;
rootFrame.GoBack();
}
}
因此,如果有人解决了这个问题,那就太好了!提前致谢 ! :)
尝试重置所选项目,因为 SelectionChanged
没有触发,因为当您返回时选择没有改变。
private void lvNom_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(lvNom.SelectedItem != null)
{
Person personneSelect = (Person)lvNom.SelectedItem;
lvNom.SelectedItem = null;
Frame.Navigate(typeof(DetailPersonne), personneSelect);
}
}