Несколько связанных с этой темой здесь:
Асинхронное чтение 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 на этой странице. Альтернативно, как я могу передать слова или finalResult в Result.xaml?
Спасибо за внимание:)