如何在 UI 中显示预测列表(当用户输入 'Text_Changed' 时来自我的后端代码?Xamarin Forms
How can I display in UI a list of predictions (from my backend code when 'Text_Changed' in the user's entry? Xamarin Forms
我的带有位置自动建议的后端代码运行良好(我可以看到它从我的后端列表中读取位置)
现在我想在 he/she 开始使用 Text_Changed 选项在条目中键入内容时向用户显示该列表。
下面是我的 Text_Changed 方法(“locationText_Changed”)。现在如何在 he/she 开始键入一些文本时向 UI 中的用户显示预测列表?
后端代码:
private async void locationText_Changed(object sender, TextChangedEventArgs e)
{
if (location == null)
{
await GetLocation();
}
string formattedLocation = string.Format("{0}%2C{1}", location.Latitude, location.Longitude);
List<Prediction> predictionList = await VenueLogic1.GetVenues1(e.NewTextValue, formattedLocation);
还有我的UI:
<StackLayout BackgroundColor="BlanchedAlmond" >
<Entry x:Name="locationEntry"
TextChanged="locationText_Changed"
Placeholder="Enter Address"/>
</StackLayout>
首先:要显示此列表,您需要使用 ListView
(在性能问题上更好);
第二:条目可以是 SearchBar
.
那么,你可以做什么:
- 创建一个搜索栏,用户将在上面输入一些数据。
- 当用户输入时,您的代码将过滤列表并且只显示与输入匹配的内容(如您所述)。
在this link中它一步一步地展示了如何实现它。所以也许你会在你的代码中改变一些东西,但结果是专业的。
PS:尝试只在link之后做。如果有任何疑问,请用您所做的更新您的问题,我们将为您提供帮助。玩得开心。
您可以使用数据绑定和 collectionview/listview,将 ItemsSource 设置为您的预测列表,然后更改 locationText_Changed 中的 itemsSource method.like:
private async void locationText_Changed(object sender, TextChangedEventArgs e)
{
if (location == null)
{
await GetLocation();
}
string formattedLocation = string.Format("{0}%2C{1}", location.Latitude, location.Longitude);
List<Prediction> predictionList = await VenueLogic1.GetVenues1(e.NewTextValue, formattedLocation);
var newlist=from n in predictionList where n.contains(text)
select n;
mycollectionlist.ItemsSource=newlist;}
我的带有位置自动建议的后端代码运行良好(我可以看到它从我的后端列表中读取位置) 现在我想在 he/she 开始使用 Text_Changed 选项在条目中键入内容时向用户显示该列表。 下面是我的 Text_Changed 方法(“locationText_Changed”)。现在如何在 he/she 开始键入一些文本时向 UI 中的用户显示预测列表?
后端代码:
private async void locationText_Changed(object sender, TextChangedEventArgs e)
{
if (location == null)
{
await GetLocation();
}
string formattedLocation = string.Format("{0}%2C{1}", location.Latitude, location.Longitude);
List<Prediction> predictionList = await VenueLogic1.GetVenues1(e.NewTextValue, formattedLocation);
还有我的UI:
<StackLayout BackgroundColor="BlanchedAlmond" >
<Entry x:Name="locationEntry"
TextChanged="locationText_Changed"
Placeholder="Enter Address"/>
</StackLayout>
首先:要显示此列表,您需要使用 ListView
(在性能问题上更好);
第二:条目可以是 SearchBar
.
那么,你可以做什么:
- 创建一个搜索栏,用户将在上面输入一些数据。
- 当用户输入时,您的代码将过滤列表并且只显示与输入匹配的内容(如您所述)。
在this link中它一步一步地展示了如何实现它。所以也许你会在你的代码中改变一些东西,但结果是专业的。
PS:尝试只在link之后做。如果有任何疑问,请用您所做的更新您的问题,我们将为您提供帮助。玩得开心。
您可以使用数据绑定和 collectionview/listview,将 ItemsSource 设置为您的预测列表,然后更改 locationText_Changed 中的 itemsSource method.like:
private async void locationText_Changed(object sender, TextChangedEventArgs e)
{
if (location == null)
{
await GetLocation();
}
string formattedLocation = string.Format("{0}%2C{1}", location.Latitude, location.Longitude);
List<Prediction> predictionList = await VenueLogic1.GetVenues1(e.NewTextValue, formattedLocation);
var newlist=from n in predictionList where n.contains(text)
select n;
mycollectionlist.ItemsSource=newlist;}