DataGrid's CellEditingTemplate and focus in edit mode
Try this
<DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <CheckBox Name="checkbox" IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" /> <DataTemplate.Triggers> <Trigger SourceName="checkbox" Property="IsVisible" Value="True"> <Setter TargetName="checkbox" Property="FocusManager.FocusedElement" Value="{Binding ElementName=checkbox}" /> </Trigger> </DataTemplate.Triggers> </DataTemplate></DataGridTemplateColumn.CellEditingTemplate>
Or this...
<DataGridTemplateColumn Header="Long" IsReadOnly="False" Width="100"> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <CheckBox FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}" IsChecked="{Binding Path=CanTurn}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" /> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate></DataGridTemplateColumn>
if you want to set the focus on edit and select the text given by a Binding try this.
<DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <TextBox Text="{Binding Parameter0, Mode=TwoWay}" Loaded="TbLoaded" /> </DataTemplate></DataGridTemplateColumn.CellEditingTemplate>
code behind:
private void TbLoaded(object sender, EventArgs e){ TextBox tb = sender as TextBox; if (tb == null) return; tb.SelectAll(); FocusManager.SetFocusedElement(this, tb);}