Tengo un TextBox dentro de una Grid dentro de un DataTemplate que quiero que tenga el foco del teclado cuando se vuelva visible. Tambien encontre que
<DataTemplate x:Key="DistanceView" DataType="{x:Type vm:ROI}">
<Grid FocusManager.FocusedElement="{Binding ElementName=tbDistance}">
<TextBox x:Name="tbDistance" Grid.Column="1" Grid.Row="1" VerticalAlignment="Bottom"/>
</Grid>
</DataTemplate>
no funcionó para mí.
Sin embargo, cuando llamo a Focus () en el ContentControl principal
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
comienza a funcionar y el símbolo de intercalación es visible en el TextBox. Creo que el FocusScope debe recibir el enfoque para que la propiedad FocusManager.FocusedElement tenga algún efecto.
alemán