在Datagrid单元格内设置光标位置并选择文本

时间:2017-09-13 06:51:34

标签: wpf

您好不知道如何将光标放在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;
                }
            }
        }
    }

enter image description here

编辑:我说游标=闪烁插入符号

1 个答案:

答案 0 :(得分:3)

您需要等到单元格中的TextBlockTextBox替换。

定义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>