繁体   English   中英

Windows Phone 8:“后退”按钮

[英]Windows Phone 8: Back Button

我是Windows Phone平台的新手。 我正在尝试制作新闻应用程序。 在此应用程序上,用户单击并阅读新闻文章,之后,用户想返回主页再次查看所有新闻标题,并将再次单击其他新闻。

但是当用户阅读第一篇文章后返回首页时,则单击第二条新闻标题。 但是,当用户导航到新页面时,第一篇新闻文章仍然在那里。

我想问这个,用户(阅读第一则新闻之后)是否有任何后退按钮,当他或她按下返回首页时可以用来清除文章页面的缓存?

我用了,但是没有用。

private void ApplicationBarIconButton_Click_1(object sender, EventArgs e)
{
    NavigationService.Navigate(new Uri("/MainPage.xaml", UriKind.Relative));
}

我在httprequest下写了一些东西,但是它对我也没有用。

private void LiveLongListSelector_Loaded(object sender, RoutedEventArgs e)
{
    string url = "MYWEBAPIURL&rnd=" + new Random().Next(1,1000);
    HttpWebRequest hWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
    hWebRequest.Method = "GET";
    hWebRequest.BeginGetResponse(ResponseLive_Completed, hWebRequest);
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache";
    hWebRequest.Headers[HttpRequestHeader.CacheControl] = "no-cache";
    hWebRequest.Headers["Cache-Control"] = "no-cache";
    hWebRequest.Headers["Pragma"] = "no-cache";
}

谁能帮助我找到完美的后退按钮或其他东西?

非常感谢你

只需使用NavigationService.GoBack(); 而不是使用

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

它将自动清除所有捕获。

或者您可以使用NavigationService.RemoveBackEntry(); 再次阅读第二篇文章时。 使用类似-

int a = NavigationService.BackStack.Count();
while (a > number) //number is stack count when comes to main page first time
{
     this.NavigationService.RemoveBackEntry();
     a = NavigationService.BackStack.Count();
}

PhoneApplicationPage上有两种方法可以覆盖和清除缓存: OnNavigatedToOnNavigatedFrom

我建议在NavigatedTo()方法中使用以下代码:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    while (NavigationService.RemoveBackEntry() != null);
}

希望有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM