Ho un TextBox all'interno di una griglia all'interno di un DataTemplate che voglio avere il focus della tastiera quando diventa visibile. L'ho trovato anche io
<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>
Non ha funzionato per me.
Tuttavia, quando chiamo Focus () nel ContentControl genitore
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
inizia a funzionare e il cursore è visibile nel TextBox. Penso che il FocusScope debba essere messo a fuoco affinché la proprietà FocusManager.FocusedElement abbia un effetto.
Jerry