Как получить выбранный элемент из автозапуска Silverlight? - PullRequest
2 голосов
/ 12 января 2010

Надеюсь, я здесь упускаю что-то чрезвычайно очевидное, но я не могу этого понять из жизни.

У меня есть AutoCompleteBox элемент управления, который извлекает результаты посредством асинхронного вызова, хотя я не могу найти надежный способ узнать, когда пользователь выбрал опцию из списка возвращаемых значений. Я пытался подключиться к событию SelectionChanged, но оно срабатывает при каждом движении в раскрывающемся списке автозаполнения, когда я действительно хочу узнать, когда пользователь определенно сказал: «Эй, это элемент, который я хочу!» либо щелкнув по нему, либо выбрав его клавишей возврата.

Любой совет был бы очень признателен, так как это сейчас сводит меня с ума. =)

Спасибо

P.S. Аргументы события SelectionChanged предоставляют AddedItems и RemovedItems, но не дают прямого указания на тип выбора, который я ищу.

Ответы [ 2 ]

1 голос
/ 12 января 2010

Не существует конкретного события, которое указывает на то, что использованный объект специально выделен для параметра, а не просто для просмотра.

Для вашего сценария самое близкое, что вы можете получить - это DropDownClosed или даже LostFocus события, затем получите доступ к свойству SelectedItem.

0 голосов
/ 14 августа 2014

Если вы используете Telerik AutoCompleteBox, возможно, вы ищете событие OnEntryAdded. Я вижу, что этот вопрос был задан более 4 лет назад, так что, возможно, это событие не существовало тогда. Я только что обновился до последнего обновления Telerik Controls (Q2 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
...