Есть код, суть простая - берем информацию с сайта, обрабатываем и выдаем пользователю в виде строки в 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();
}