12 setembro, 2009

SelectorRapidAccessKeyBehavior em ComboBox para Silverlight 3

Acabei de publicar mais uma behavior para Silverlight 3 na Microsoft Expression Gallery. Assim como a anterior, essa behavior serve para melhorar a usabilidade de controles em Silverlight, deixando-os com comportamento semelhante ao dos controles nativos para aplicações desktop. O que essa behavior faz é selecionar ítens no controle ao qual está associada, de acordo com a letra ou número que foi pressionado no teclado.

SelectorRapidAccessKeyBehavior no Microsoft Expression Gallery

Essa behavior só pode ser associada a controles do tipo Selector, como ComboBox e ListBox. Ela funciona no ComboBox mesmo quando está aberto.

É possível definir qual propriedade dos ítems do controle será utilizada para fazer a busca. Com isso, você pode popular o combo com suas classes, utilizando data binding, e definir na behavior que a busca será feita na propriedade Nome, por exemplo. Por padrão, a behavior vai tentar utilizar a propriedade Content.

image

Se a propriedade definida na behavior não for encontrada em algum ítem, esse ítem será ignorado.

A behavior converte o valor da propriedade para string antes de verificar se começa com a tecla pressionada, portanto funciona também para propridades de tipos numericos ou enumeradores.

O código fonte da behavior e da aplicação de exemplo estão publicados na Microsoft Expression Gallery

http://gallery.expression.microsoft.com/en-us/RapidAccessKey

Qualquer sugestão de melhoria ou correção de bug é bem vinda.

4 comentários:

Anônimo disse...

Hello,
do you have this behavior for SL 4? The problem i have its that the keydown event its not raised when the combobox its open? Can you help me please?

Kelps Leite de Sousa disse...

Hello anonimous. I have to check that, because I think I never tested this behavior using SL4. How can I contact you?

Anônimo disse...

Hello, thanks for the quick response.

My email is alexjoei@hotmail.com.

My main problem is that the keydown event is not fired when the combobox is opened.

Thanks again.

Anônimo disse...

Hi Kelps,

I dont know if you read my last commment but i would be great if you could help me, because i dont have more ideas to solve de problem.

Thanks again.