我正在尝试使用 AutoSuggestBox 将数据显示为从字符串中键入。
我尝试使用一些单词创建一个数组,这些单词将在用户键入时显示在 AutoSuggestBox 中,但是我需要来自 API 的数据,该数据存储在字符串中以显示在 AutoSuggestBox 中。现在,我使用一个数组来显示用户键入的 3 个单词,并将包含 API 数据的字符串添加到 ListBox 中。
然而,这是在 AutoSuggestBox_TextChanged 方法中完成的,因此当用户键入时,我们获得的数据会被添加到 ListBox。
private async void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
string[] Autoitems = new string[] { "check", "apple", "banana" } //Temporary Array for AutoSuggestBox
var Auto = (AutoSuggestBox)sender;
var Suggestion = Autoitems.Where(p => p.StartsWith(Auto.Text, StringComparison.OrdinalIgnoreCase)).ToArray();
Auto.ItemsSource = Suggestion; //This displays only items from array as being typed.
string searchedName = SearchBox.Text;
myFood = await NutritionixAPI.GetFood(searchedName);
//The data I get from the API is stored in the temp string
string temp = myFood.hits[0].fields.item_name + " Calories: " + myFood.hits[0].fields.nf_calories + " Protein: " + myFood.hits[0].fields.nf_protein + " Fat: " + myFood.hits[0].fields.nf_total_fat;
ResultListBox.Items.Add(temp); //temp string data is added to a listbox
Total += myFood.hits[0].fields.nf_calories;
TotalCalories.Text = ((int)Total).ToString(); //Adds the calories of each added food to the Total Variable and Display it
}
我希望 AutoSuggestBox 向我显示正在输入的字符串中的数据。例如“Bana” - 弹出名称为 Bana 的食物列表。
但实际结果是 AutoSuggestBox 显示 ArrayData 和字符串中的 API 数据被添加到 ListBox 中。