How to focus a control loaded inside DataTemplate in Silverlight Grid?
In SfDataGrid, while using the TemplateColumn, when you enter edit mode using keyboard the focus will be given to the content template by default. This is because, as you can load any control within the DataTemplate, it is not possible to focus on the control loaded within the DataTemplate by default. Hence, you need to set focus to the control loaded inside the DataTemplate explicitly. To set the focus to the controls loaded inside the DataTemplate GridTemplateColumn provides an attached property FocusManagerHelper.FocusedElement. You can get the attached property in Syncfusion.UI.Xaml.Grid namespace.
FocusedElement
The attached property FocusedElement gives focus to a particular UIElement loaded inside the DataTemplate. So it is possible to enter edit mode using keyboard itself as the focus will be given to the loaded UIElement. You can also use the attached property inside the CellTemplate.
The following code example shows, how to set the FocusedElement inside DataTemplate
XAML
<syncfusion:GridTemplateColumn MappingName="SalesID"> <syncfusion:GridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding SalesID}"/> </DataTemplate> </syncfusion:GridTemplateColumn.CellTemplate> <syncfusion:GridTemplateColumn.EditTemplate> <DataTemplate> <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <TextBox Text="{Binding SalesID, Mode=TwoWay}" syncfusion:FocusManagerHelper.FocusedElement="True"/> </Grid> </DataTemplate> </syncfusion:GridTemplateColumn.EditTemplate> </syncfusion:GridTemplateColumn>
Sample Links: