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 
相關問題