用于WPF的Telerik UI免费下载30天试用版

自动完成

自动完成是许多浏览器、程序和控件提供的功能。它涉及到程序预测用户想要输入的单词或短语,而不需要用户完全输入。RadComboBox具有完整的自动完成支持-当您在输入区域中键入时,组合框返回当前键入文本的相对匹配项。

TextSearchMode属性设置为包含,自动完成功能将被禁用。

本教程的目的是向您展示如何配置自动完成功能。

RadComboBox填充了一个字符串列表

在最简单的场景中,数据源将是一个字符串列表。在这种情况下,您不需要执行任何额外的工作来启用或配置自动完成。

创建样例数据

< telerik: RadComboBox x: Name = " RadComboBox宽度= " 200 " IsEditable = " True " > < telerik: RadComboBoxItem内容= " Alapattah " / > < telerik: RadComboBoxItem内容= " Brickell温泉大道" / > < telerik: RadComboBoxItem内容= "迈阿密市区" / > < telerik: RadComboBoxItem内容= " El门户" / > < telerik: RadComboBoxItem内容= "卡特勒岭" / > < telerik: RadComboBoxItem内容=“佛罗里达城市" / > < telerik: RadComboBoxItem内容= "家园" / > < telerik: RadComboBoxItem内容= "假象" / > < telerik: RadComboBoxItemContent="Leisure City" />   
现在,如果你只输入“down”,组合将完成你的结果与第一个匹配的项目。

注意,在前面的示例中IsEditable属性设置为真正的.如果你的RadComboBox是不可编辑的,你仍然可以从自动完成功能中受益,但不是自动完成,你的项目将被自动选择。

使用DisplayMemberPath

RadComboBox用字符串列表填充是最简单的场景。然而,在大多数情况下,您将有一个RadComboBox用一组业务对象填充.如果数据源比较复杂,并且数据对象不是单个值,而是具有多个属性的更复杂的类,则可以在控件的“选择框”中指定希望看到的值。要完成此操作,需要配置DisplayMemberPath指出你想要使用的属性自动完成

例如,如果您设置DisplayMemberPath名字当你假设你的数据对象有这样的属性时,RadComboBox将尝试使用一些匹配的名称值自动完成您的条目。下面是一个如何设置的例子DisplayMemberPath和使用自动完成如果与此控件关联的数据上下文具有名为名字

设置DisplayMemberPath属性

注意,您还设置了IsEditable财产真正的为了更好的区分利益自动完成.如果你不使用IsEditable属性,您仍然可以从此特性中受益,但不是自动完成你的项目将是自动选择

现在,如果你只输入“新”,组合将完成你的结果与第一个匹配的项目。

在前面的示例中,为了更清晰,省略了实际的数据源声明和初始化。有关更多信息,请查看对象绑定的话题。

使用自定义ItemTemplate

在使用的情况下,事情变得越来越复杂ItemTemplate它定义了项目布局。例如,如果你有一个ItemTemplate就像下面显示的那样,没有直接的逻辑DisplayMemberPath应该匹配,因为有多个显示的成员。

WPF RadComboBox自动完成自定义ItemTemplate

使用TextSearch。TextPath

为了克服这个问题RadComboBox的API支持附加属性TextSearch。TextPath其中必须指定要使用的值自动完成自动选择

TextSearch类位于Telerik.Windows.Controls.dll组装。

下面的示例展示了如何使用TextSearch。TextPath财产。

设置TextSearch附加属性

使用TextSearch。自动完成Timeout Property

TextSearch类公开一个名为AutoCompleteTimeout它允许您配置自动完成超时。当您希望设置超时后,自动完成输入的文本将被重置时,请使用此属性。默认值为800ms。

下面的示例显示如何设置TextSearch。AutoCompleteTimeout财产。

设置AutoCompleteTimeout属性

Telerik.Windows.Controls.TextSearch.AutoCompleteTimeout = TimeSpan.FromSeconds(2);

禁用自动完成

的自动完成功能RadComboBox始终启用。要禁用它,您需要设置RadComboBoxIsTextSearchEnabled财产

禁用自动完成机制

在代码后面禁用自动完成机制

radComboBox。IsTextSearchEnabled = false;
radComboBox。IsTextSearchEnabled = False

在“自动完成”上选择项目

RadComboBox控件公开CanAutocompleteSelectItems属性,该属性指定在RadComboBox中键入文本是否应更改所选内容。

此属性仅在打开控件的下拉菜单时适用。

默认情况下,该属性的值为这意味着输入一些字符只会选择一个项目,如果IsEditable属性设置为真正的

但是,您可以手动设置CanAutocompleteSelectItems财产真正的当用户键入文本或时,控件是否应更改其选择在显式发生之前,不应更改选择。

禁用自动完成项目选择

在代码后面禁用自动完成项目选择

radComboBox。CanAutocompleteSelectItems = false;
radComboBox。CanAutocompleteSelectItems = False

选择部分匹配

R1 2023RadComboBox控件公开了一个AutoCompleteSelectionMode属性,该属性指示在找到部分匹配或完全匹配时是否执行通过自动完成的选择。它是一个enum,有两个可能的值:

  • PartialMatch:即使项目只部分匹配输入的文本,也会被选中。这是默认的价值。
  • FullMatch:只有与输入文本完全匹配的项目才会被选中。

下面的示例演示如何设置AutoCompleteSelectionMode属性,以便仅在条目与键入的文本完全匹配时才选择它们。

设置AutoCompleteSelectionMode

在代码后面设置AutoCompleteSelectionMode

radComboBox。自动完成选择Mode = ComboBoxAutoCompleteSelectionMode.FullMatch;
radComboBox。自动完成选择Mode = ComboBoxAutoCompleteSelectionMode.FullMatch

另请参阅

在本文中
Baidu
map