[英]getting autocomplete box with possible places (addresses) Windows phone
幾天以來,我在網上搜索解決方案。 我要實現的是一個自動完成搜索框,該搜索框最后為我提供了所搜索地址或地點的經度和緯度。
所以在這里,我確實有我需要的東西,問題是圖像不見了,所以我被卡住了。
我如何將文本框的內容發送到我的位置api url(在我的TextChange事件處理程序中)
我如何在事件處理程序中讀取json響應並將其綁定到我的LisBox項目?
最后一點,我如何獲得所選項目的經度和緯度,以便我可以使用它?
這是事件處理程序和XAML代碼
private void SearchForTerm(object sender, System.Windows.Controls.TextChangedEventArgs e)
{
//??
}
<TextBox
Foreground="Gray"
Text="Search Location"
TextWrapping="Wrap"
Margin="0,470,0,0"
Height="72"
VerticalAlignment="Top"
AcceptsReturn="True"
GotFocus="TextBox_GotFocus"
LostFocus="TextBox_LostFocus"
TextChanged="SearchForTerm"
/>
<ListBox x:Name="Suggestion_listbox"
Margin="12,65,0,179">
</ListBox>
多謝。
我認為您可以使用WPToolkit中的AutoCompleteBox,這將非常方便和易於使用。有很多關於此的教程,這里是其中一個 。
如果您想在每個文本更改事件之后獲得結果,則可以使用具有更改后文本的WebClient調用該Web服務。我不確定該位置api,但這是從OpenWeatherMapAPI獲取當前天氣信息的示例。 您也可以在自己的情況下使用它來獲取數據。
WebClient wc = new WebClient();
wc.DownloadStringCompleted+=wc_DownloadStringCompleted;
wc.DownloadStringAsync(new Uri("http://api.openweathermap.org/data/2.5/weather?q="+location +"&units=metric",UriKind.Absolute));
從Web服務獲得響應后,您可以使用JSON.NET反序列化JSON響應, 並將 JSON響應映射到c#類,您可以使用此Web工具-json2csharp這是我的示例的DownloadStringCompleted事件處理程序。
void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (!string.IsNullOrEmpty(e.Result))
{
WeatherData weatherDt = JsonConvert.DeserializeObject<WeatherData>(e.Result);
}
}
這里WeatherData是該Json響應的根對象。 您可以使用JsonConvert.DeserializeObject(e.Result);將json響應映射到WeatherData對象。
要列出DataBinding,請參閱此問題的解決方案。
並將所選項目作為對象,可以使用Tap事件處理程序。
private void Suggestion_listbox_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
ListBox list = sender as ListBox;
ClassName obj = list.SelectedItem as ClassName;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.