DataGrid's CellEditingTemplate and focus in edit mode DataGrid's CellEditingTemplate and focus in edit mode wpf wpf

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);}