2

J'espère que je manque quelque chose d'extrêmement évident ici, mais pour la vie de moi, je ne peux pas comprendre cela.Comment obtenez-vous l'élément sélectionné à partir d'une AutoCompleteBox Silverlight?

J'ai un AutoCompleteBox contrôle qui récupère des résultats par le biais d'un appel asynchrone, bien que je ne puisse pas trouver un moyen fiable de savoir quand un utilisateur a sélectionné une option de la liste des valeurs retournées. J'ai essayé d'accrocher l'événement SelectionChanged, mais cela déclenche chaque mouvement dans la liste déroulante de la saisie semi-automatique, alors que ce que je veux vraiment savoir, c'est quand un utilisateur a définitivement dit "Hey, c'est l'élément que je veux!" soit en cliquant dessus, soit en le sélectionnant avec la touche de retour.

Tout conseil serait grandement apprécié car cela commence à me rendre un peu fou maintenant. =)

Merci

P.S. Les arguments d'événement SelectionChanged fournissent AddedItems et RemovedItems, mais ne donnent aucune indication directe du type de sélection que je recherche.

Répondre

1

Il n'y a pas d'événement spécifique qui indique que l'utilisateur a choisi une option plutôt qu'une simple navigation.

Pour votre scénario le plus proche que vous pouvez obtenir est DropDownClosed ou même LostFocus événements puis accéder à la propriété SelectedItem.

0

Si vous utilisez le Telerik AutoCompleteBox, l'événement "OnEntryAdded" est peut-être ce que vous cherchez. Je vois que cette question a été posée il y a plus de 4 ans, alors peut-être que cet événement n'existait pas à l'époque. Je viens de mettre à jour la dernière mise à jour des contrôles Telerik (2014 Q2). Voici un exemple rapide. J'ai supprimé les propriétés dont nous ne parlons pas ici pour le nettoyer mais, évidemment, celles-ci devront être rajoutées à moins que vous ne les définissiez dans le code (par exemple DataSourceID).

Source Page:

<telerik:RadAutoCompleteBox ID="RadAutoCompleteBox1" runat="server" OnEntryAdded="RadAutoCompleteBox1_EntryAdded" > 
</telerik:RadAutoCompleteBox> 

code de test (en 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 
Questions connexes