Немного связано с этой темой здесь: Асинхронное чтение XML в Windows Phone 7
Я разрабатываю приложение для Windows Phone, и у меня есть функция поиска в моем файле Search.xaml.cs. Вызывается по нажатию кнопки, создает поисковый запрос и с ним вызывает DownloadStringInBackground
private void SearchQuery(object sender, EventArgs e)
{
string temp = "http://api.search.live.net/xml.aspx?Appid=myappid&query=randomqueryhere&sources=web";
DownloadStringInBackground(temp);
}
public static void DownloadStringInBackground(string address)
{
WebClient client = new WebClient();
Uri uri = new Uri(address);
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCallback);
client.DownloadStringAsync(uri);
}
private static void DownloadStringCallback(Object sender, DownloadStringCompletedEventArgs e)
{
// Fancy manipulation logic here
finalResult = words;
}
finalResult был сохранен как
public static string[] finalResult;
в классе поиска. Мой вопрос: где я могу поместить команду навигации (NavigationService.Navigate (новый Uri ("/Result.xaml", UriKind.Relative));)? Я пытался сделать это в обратном вызове, но получаю исключение nullobject из-за статического ключевого слова. Как я могу гарантировать, что finalResult был заполнен, и что я могу перейти к Result.xaml и сослаться на данные в finalResult на этой странице. В качестве альтернативы, как я могу передать Words или finalResult в Result.xaml?
Спасибо за поиск :)