我希望在这里遗漏一些非常明显的东西,但对于我的生活,我无法理解这一点。
我有一个AutoCompleteBox
控件正在通过异步调用检索结果,尽管我找不到一种可靠的方法来知道用户何时从返回值列表中选择了一个选项。我已经尝试挂钩SelectionChanged
事件,但是当自动填充下拉列表中的每一个动作触发时,当我真正想知道的是当用户明确地说“嘿,那是我想要的项目时! “单击它,或使用返回键选择它。
任何建议都会非常感激,因为这开始让我有点疯狂。 =)
由于
P.S。 SelectionChanged
事件参数提供AddedItems
和RemovedItems
,但不直接指示我正在寻找的选择类型。
答案 0 :(得分:1)
没有特定的事件表明使用过的选项特别丰富了选项,而不仅仅是浏览。
对于您的情况,您可以获得最接近的DropDownClosed
甚至LostFocus
个事件,然后访问SelectedItem
属性。
答案 1 :(得分:0)
如果您使用的是Telerik AutoCompleteBox,则可能是您正在寻找的“OnEntryAdded”事件。我看到这个问题是在4年前被问到的,所以也许这个事件当时还不存在。我刚刚更新到Telerik控件的最新更新(2014年第二季度)。这是一个简单的例子。我删除了我们在这里没有讨论的属性来清理它,但显然,除非你在代码中设置它们(例如DataSourceID),否则需要重新添加它们。
来源页面:
<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" >
</telerik:RadAutoCompleteBox>
测试代码(在VB中):
Protected Sub RadAutoCompleteBox1_EntryAdded(sender As Object, e As AutoCompleteEntryEventArgs)
MsgBox(e.Entry.Text) 'This is just to show you the DataValueField in your dev
MsgBox(e.Entry.Value) 'This is just to show you the DataTextField in your dev
racbCustomer.Entries.Clear() 'This will wipe out the selection(s)
End Sub