J'ai une zone de texte dans une grille à l'intérieur d'un DataTemplate que je veux avoir le focus clavier quand il devient visible. J'ai aussi trouvé 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'a pas travaillé pour moi.
Cependant, lorsque j'appelle Focus () dans le ContentControl parent
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
il commence à fonctionner et le curseur est visible dans la zone de texte. Je pense que le FocusScope doit avoir le focus pour que la propriété FocusManager.FocusedElement ait un effet.
Jerry