2010-07-27 4 views
0

Je suis assez nouveau pour Silverlight mais j'ai de l'expérience en développement web, et je suis très ennuyé par la combobox par défaut de Silverlight. Il semble qu'il manque un concept d'utilisation pour la saisie régulière de données. Principalement je souhaite qu'il fonctionne comme une boîte de sélection HTML, où vous pouvez cliquer sur le menu déroulant, puis taper une lettre et cela vous ramène au premier élément avec cette lettre. Y a-t-il un moyen facile de me faire fonctionner comme ça, ou un contrôle par un tiers qui peut le faire?Un moyen facile de faire des boîtes combinées Silverlight effectuer comme des boîtes de sélection HTML?

Merci!

Répondre

1

Vous pouvez écrire un comportement joint pour fournir cette fonctionnalité. Le problème est que les éléments dans un ComboBox dans Silverlight ne sont pas toujours des chaînes. Ils peuvent être des contrôles entiers que l'utilisateur a modélisés comme ItemTemplate. Si vous savez que le vôtre va être string, vous pouvez implémenter un Behavior<ComboBox> pour attacher à l'événement KeyDown et sélectionner le bon.

public class HTMLSelectBehavior : Behavior<ComboBox> 
{ 
    protected override void OnAttached() 
    { 
     AssociatedObject.KeyDown += OnKeyDown; 
    } 

    private void OnKeyDown(object sender, KeyEventArgs e) 
    { 
     SelectedItem = AssociatedObject.ItemsSource 
          .FirstOrDefault(i => i.ToString().BeginsWith((char)e.Key)); 
    } 
} 

C'est du haut de ma tête il ne peut pas être tout à fait exact et manque certainement de nombreux contrôles de sécurité, mais il devrait vous donner une idée.

+0

Ça va marcher, merci! – Spencer

Questions connexes