У мене є TextBox всередині сітки всередині DataTemplate, який я хочу мати у фокусі клавіатури, коли він стане видимим. Я теж це знайшов
<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>
не працював у мене.
Однак коли я викликаю Focus () у батьківському ContentControl
private void ContentControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if ((sender as ContentControl).IsVisible)
{
(sender as ContentControl).Focus();
}
}
він починає працювати, і каретка видно в TextBox. Я думаю, що FocusScope повинен бути зосереджений, щоб властивість FocusManager.FocusedElement мала ефект.
Джеррі