how to set focus to particular cell of WPF toolkit datagrid
c#, wpf, wpfdatagrid
Solution
You need to set the current cell to the one you want edited and then call BeginEdit in your Loaded handler:
dataGrid1.CurrentCell = new DataGridCellInfo(
dataGrid1.Items[0], dataGrid1.Columns[3]);
dataGrid1.BeginEdit();
If you give your DataGridTextColumn a name in XAML you can use that name rather than `Columns[3]`.
Problem
I am using WPF toolkit provided DataGrid control to display product list along with its OpenStock, Description etc. In this DataGrid i have set OpenStock column to editable and rest are non-editable. What i want now when my this windows loads, I want to set keyboard focus to first cell of OpenStock column and if possible in edit mode. I searched this for 2 days and finally posting here. any help or code sample would be helpful. ``` <my:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Margin="2,2,2,55" x:Name="dataGrid1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="White" AlternatingRowBackground="AliceBlue" AlternationCount="2" SelectionMode="Single" SelectionUnit="Cell" BorderThickness="0" IsTabStop="True"> <my:DataGrid.Resources> <Style x:Key="errorStyle" TargetType="{x:Type TextBox}"> <Setter Property="Padding" Value="-2"/> <Style.Triggers> <Trigger Property="Validation.HasError" Value="True"> <Setter Property="Background" Value="Yellow"/> <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors)[0].ErrorContent}"/> </Trigger> </Style.Triggers> </Style> </my:DataGrid.Resources> <my:DataGrid.Columns> <my:DataGridTextColumn Width="60" FocusManager.IsFocusScope="False" Binding="{Binding Path=pCode}" Header="Code" IsReadOnly="True" /> <my:DataGridTextColumn Width="150" Binding="{Binding pName}" Header="Description" IsReadOnly="True" /> <my:DataGridTextColumn Width="120" Binding="{Binding CloseStock}" Header="Closing Stock" IsReadOnly="True" /> <my:DataGridTextColumn Width="100" Binding="{Binding OpenStock, ValidatesOnExceptions=True}" Header="Open Stock" EditingElementStyle="{StaticResource errorStyle}"/> <my:DataGridTextColumn Width="150" Binding="{Binding YrlyOpenStock}" Header="Yearly Opening" IsReadOnly="True" /> </my:DataGrid.Columns> </my:DataGrid> ``` thanks alot........