Eu tenho um TextBox dentro de uma grade dentro de um DataTemplate que quero ter o foco do teclado quando se tornar visível. Eu também descobri 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>
não funcionou para mim.
No entanto, quando eu chamo Focus () no ContentControl pai
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
ele começa a funcionar e o acento circunflexo fica visível no TextBox. Acho que o FocusScope deve receber o foco para que a propriedade FocusManager.FocusedElement tenha algum efeito.
Jerry