【问题标题】:How to select an item by typing a keyboard letter in a drop down of xaml UWP如何通过在 xaml UWP 的下拉列表中键入键盘字母来选择项目
【发布时间】:2020-01-01 09:06:57
【问题描述】:

我正在开发 UWP APP,其中一项功能是我允许用户从下拉列表中选择国家。当用户单击列表时,它会显示该国家的整个列表,该列表太大而无法选择特定国家。我的要求是如何添加一个逻辑,用户可以在下拉列表中输入一个字母,并且列表应该自动向下滚动到列表中与用户输入的字母匹配的第一个字母。

【问题讨论】:

    标签: c# xaml uwp combobox


    【解决方案1】:

    您可以使用IsTextSearchEnabledIsEditable 属性来满足您的需求。

    例如:

    假设您有一个名为 CountryCollectionList<string> 作为数据源。

    <ComboBox IsEditable="True"
              IsTextSearchEnabled="True"
              ItemsSource="{x:Bind CountryCollection}"
              ...
              />
    

    这样可以在ComboBox中输入文字,ComboBox会匹配数据源中的数据,如果下拉列表打开也可以跳转。

    如果你的数据源不是String类型,而是更复杂的结构,为了实现这个功能,需要重写ToString方法。

    public class CountryModel
    {
       public string Name {get;set;}
    
       public override string ToString()
       {
           return Name;
       }
    }
    

    最好的问候。

    【讨论】:

    • 谢谢,我尝试将 IsEditable、IsTextSearchEnabled 属性添加到组合框中,它在下拉列表中为我提供了一个空白字段来输入字母但这不是我想要的。我真的希望我的下拉菜单自动滚动到用户在键盘上敲击的字母与打开的下拉列表中的列表项匹配的列表中。
    • 您好,这个解决方案是内置在控件中的,是最容易实现的。如果您想完全为自己的目的实现它,请考虑使用 TextBoxFlyout 并监听 TextBox 的 KeyPressed 事件以做出相应的响应。
    猜你喜欢
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2015-04-12
    相关资源
    最近更新 更多