此处与此主题有些相关: Windows Phone 7 中的异步 XML 读取
我正在开发一个 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(new Uri("/Result.xaml", UriKind.Relative));)?我尝试在回调中执行此操作,但由于 static 关键字,我得到了一个 nullobject 异常。如何确保已填充 finalResult,并且可以导航到 Result.xaml 并在该页面上引用 finalResult 中的数据。或者,如何将 Words 或 finalResult 传递给 Result.xaml?
谢谢你看:)