2009-04-20 25 views
5

Tengo un ListBox que está recibiendo nuevos elementos agregados a través de Databinding (es decir, algo se está agregando a la lista y el cuadro se está actualizando para incluir el nuevo elemento).Configuración Enfoque en elementos nuevos en Elementos Control

Los elementos en el cuadro de lista son plantillas de datos editables, por lo que la pregunta es: ¿Cómo configuro el foco en el primer campo de la plantilla cuando se agrega un nuevo elemento?

Miré this question y voy a ver si me lleva a alguna parte, pero en realidad no es una respuesta directa a mi pregunta.

Respuesta

7

La pregunta a la que se vinculó debería funcionar para su situación particular. Mientras usted está utilizando un ObservableCollection de su fuente, se puede establecer:

<ListBox IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding MyCollection}" ItemTemplate="{StaticResource MyTemplate}/> 

Esto se asegurará de que a medida que se añaden elementos, se da el foco al nuevo elemento, entonces el gestor de selección (echar un vistazo a la primera respuesta en ese hilo) debería enfocar el TextBox. El artículo de MSDN proporciona un ejemplo útil, puesto en una plantilla aquí:

<DataTemplate x:Key="MyTemplate" DataType="{x:Type Classes:MyClass}">  
    <StackPanel FocusManager.FocusedElement="{Binding ElementName=firstButton}"> 
    <Button Name="firstButton" /> 
    </StackPanel> 
</DataTemplate> 
+0

Mi problema en realidad se complica debido a la presencia de un control de usuario en la plantilla de datos que requiere el manejo del evento de foco y de pasarlo al texto real cuadro que quiero, pero la configuración aquí me consiguió lo suficientemente lejos como para resolverlo, gracias. –

+4

Puede publicar su código en caso de que alguien más busque algo similar. –

Cuestiones relacionadas