2

我希望在这里失去一些非常明显的东西,但对于我的生活我无法弄清楚这一点。如何从Silverlight自动完成框中获取所选项目?

我有一个AutoCompleteBox控件通过异步调用来检索结果,尽管我找不到一个可靠的方式来知道用户何时从返回值列表中选择了一个选项。我尝试了一下SelectionChanged事件,但是它激发了自动完成的下拉列表中的每一个动作,当我真正想知道的是当用户明确地说“嘿,那是我想要的东西!”。通过点击它或用返回键选择它。

任何意见将不胜感激,因为这现在开始让我有点疯狂。 =)

谢谢

P.S. SelectionChanged事件参数提供AddedItemsRemovedItems,但不提供任何直接指示我正在查找的选择类型。

回答

1

没有特定的事件表明使用的是专门为选项而不是仅仅浏览。

对于您的场景,您可以获得最接近的是DropDownClosed甚至LostFocus事件,然后访问SelectedItem属性。

0

如果您正在使用Telerik AutoCompleteBox,或许您正在寻找“OnEntryAdded”事件。我看到这个问题在4年前被问过,所以也许这个事件在当时并不存在。我刚刚更新了Telerik控件的最新更新(2014年第2季度)。这是一个简单的例子。我删除了我们在这里没有讨论的属性来清除它,但显​​然这些属性需要重新加入,除非您将它们设置为代码(例如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 
相关问题