您好不知道如何将光标放在DatagridCell中并选择所有文本
下面的代码将焦点设置在单元格上,开始编辑。但是光标不在单元格内部,因此用户无法开始键入文本。此外,未选中此选项,因此用户必须手动选择文本而不是直接替换值。
Mainwindow.xaml.cs:
private void GrdLignes_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
foreach (var c in GrdLignes.SelectedCells)
{
if (c.Column.Header.ToString() == "Quantité Livrée")
{
var cellContent = c.Column.GetCellContent(c.Item);
if (cellContent != null)
{
var dc = (DataGridCell)cellContent.Parent;
dc.Focus();
dc.IsEditing = true;
}
}
}
}
编辑:我说游标=闪烁插入符号
答案 0 :(得分:3)
您需要等到单元格中的TextBlock
被TextBox
替换。
定义EditingElementStyle
并处理Loaded
的{{1}}事件:
TextBox
<DataGrid x:Name="GridLignes" ...>
<DataGrid.Resources>
<Style x:Key="tbStyle" TargetType="TextBox">
<EventSetter Event="Loaded" Handler="OnLoaded" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Quantité Livrée" Binding="{Binding Qty}" EditingElementStyle="{StaticResource tbStyle}" />
...
</DataGrid.Columns>
</DataGrid>