Mam TextBox wewnątrz siatki wewnątrz DataTemplate, na którym chcę mieć fokus klawiatury, gdy stanie się widoczny. Ja też to znalazłem
<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>
nie działa dla mnie.
Jednak gdy wywołuję Focus () w nadrzędnym ContentControl
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
zaczyna działać, a daszek jest widoczny w TextBox. Myślę, że FocusScope musi mieć fokus, aby właściwość FocusManager.FocusedElement miała jakikolwiek efekt.
Nocnik