@nicklayk

Refresh page Windows Phone?

Есть код, суть простая - берем информацию с сайта, обрабатываем и выдаем пользователю в виде строки в TextBlock. Использую HttpWebRequest HttpWebResponse, всё хорошо.

Проблема вот в чем: код у меня в Page_Loaded, он загружается 1 раз. И если изменить на сайте строку и сделать переход между страницами в приложении - ничего не происходит. В Application Bar есть кнопка refresh с таким кодом:
private void ApplicationBarIconButton_Refresh(object sender, EventArgs e)
        {
            NavigationService.Navigate(new Uri("/MainPage.xaml?" + DateTime.Now.Ticks, UriKind.Relative));
        }


Но и это не помогает, страница вроде обновляется, а заново Request и Response не начинают работать.

Если перезайти в приложение - всё подгружается по новой и новая строка отображается.

Пытался засунуть код в GotFocus - ничего не изменилось.

Вопрос такой - как тут правильно будет реализовать refresh?

Вывод в отдельную функцию не помогает. Грешу на stream, вот код:

private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(@"site.com/.../.../");
    request.BeginGetResponse(new AsyncCallback(ReadWebRequestCallback), request);
}
public void ReadWebRequestCallback(IAsyncResult callbackResult)
{
   HttpWebRequest myRequest = (HttpWebRequest)callbackResult.AsyncState;
   HttpWebResponse myResponse = (HttpWebResponse)myRequest.EndGetResponse(callbackResult);

   StreamReader readStream = new StreamReader(myResponse.GetResponseStream());
   {
        string results = readStream.ReadToEnd();
         ///обработка и дальше вывод вывод
         Dispatcher.BeginInvoke(() => tbk_text.Text = Convert.ToString(str);
    }
    readStream.Close();
    myResponse.Close();
}
  • Вопрос задан
  • 2511 просмотров
Решения вопроса 1
@nicklayk Автор вопроса
Проблема была в том, что постоянно попадал в кэш.

Нашел ответ тут: social.msdn.microsoft.com/forums/wpapps/en-US/3286...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы