如何将光标设置在绑定到数据表的datagrid中空行的第一个单元格上

Posted

技术标签:

【中文标题】如何将光标设置在绑定到数据表的datagrid中空行的第一个单元格上【英文标题】:How to set the cursor on the first cell of an empty row in datagrid which is bound to a data table 【发布时间】:2018-10-28 22:16:51 【问题描述】:

我有一个绑定到数据表的数据网格。我想知道 - 我们如何将光标显示为在绑定到数据表的此数据网格的空行的第一个单元格中闪烁。此外,当用户通过按 Enter 键向此数据表/数据网格添加新的空行时,光标应在新添加的空行的第一个单元格上闪烁。

这是目前显示的 UI,但用户可能不知道在哪里插入值,因为最后一个空行上没有光标闪烁。

代码如下:

View.xaml

<DataGrid x:Name="MyGrid" ItemsSource="Binding MyDataTable, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged"   
                          VerticalAlignment="Top"                           
                          Height="400"
                          Width="Auto"
                          SelectionMode="Single"                        
                          AutoGenerateColumns="True"
                          GridLinesVisibility ="Vertical"
                          Background="Transparent"
                          CanUserResizeColumns="True"
                          CanUserReorderColumns="False"
                          CanUserResizeRows="False"                
                          BorderThickness="0" 
                          CanUserAddRows="True" 
                          RowHeaderWidth="0">                                                  
</DataGrid>

ViewModel.cs

private DataTable _MyDataTable;

public DataTable MyDataTable

    get  return _MyDataTable; 
    set  SetProperty(ref _MyDataTable, value); 

【问题讨论】:

我会避免使用数据网格来输入数据。 https://***.com/questions/49997387/wpf-datagrid-adding-new-row-setting-focus-first-cell的可能重复 【参考方案1】:

您所说的“设置闪烁光标”称为聚焦(当文本框聚焦时,它将显示闪烁的插入符号;当一个按钮聚焦时,Enter 键将触发它的点击等)

这是一篇详细的文章,其中包含多个关于如何在数据网格中聚焦行/单元格的示例:https://social.technet.microsoft.com/wiki/contents/articles/21202.wpf-programmatically-selecting-and-focusing-a-row-or-cell-in-a-datagrid.aspx

【讨论】:

以上是关于如何将光标设置在绑定到数据表的datagrid中空行的第一个单元格上的主要内容,如果未能解决你的问题,请参考以下文章

如何将Array数据绑定到DataGrid并实现数据更新?

如何使用 MVVM 将数据绑定到 DataGrid 中的 DataGridComboBoxColumn

WPF DataGrid - 如何设置正确的 DataTrigger 绑定到单元格的数据源(而不是行的源)

如何将图像设置为 DataGrid 标题背景?

如何将 DataTable 绑定到 Datagrid

WPF MVVM 将 ComboBox 绑定到 Datagrid 选定项