在Windows Phone 8.1中自动完成文本框

时间:2015-01-21 11:10:02

标签: windows-phone-8 windows-phone windows-phone-8.1

我想在我的Windows Phone 8.1 app中使用一些功能,我的用户输入了一些字符,我建议他说一些字。

public IEnumerable AutoCompletions = new List<string>()
{
 "Lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit", "Nullam", "felis", "dui", "gravida", "at"};

例如用户输入&#34; a&#34;我建议&#34; amet&#34;,&#34; at&#34;和&#34; adipiscing&#34;,进一步的用户输入&#34; am&#34;我建议&#34; amet&#34;。 请帮帮我

1 个答案:

答案 0 :(得分:4)

您要做的是仅显示适用于给定输入的建议。并非所有可能的字符串。

让我们假设你有以下AutoSuggestBox:

<AutoSuggestBox 
   TextChanged="AutoSuggestBox_TextChanged"
   SuggestionChosen="AutoSuggestBox_SuggestionChosen">
    <AutoSuggestBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding}" />
            </StackPanel>
        </DataTemplate>
    </AutoSuggestBox.ItemTemplate>
</AutoSuggestBox>

这些是事件处理程序:

private void AutoSuggestBox_TextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
    {
        if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
        {
            // You can set a threshold when to start looking for suggestions
            if (sender.Text.Length > 3)
            {
                sender.ItemsSource = getSuggestions(sender.Text); 
            }
            else {
                sender.ItemsSource = new List<String> { };
            }
        }
    }

您所要做的就是编写一个getSuggestions(String text)方法,为给定的输入返回合理的建议。