Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 以编程方式在datagrid行上进入编辑模式_Wpf_Wpfdatagrid - Fatal编程技术网

Wpf 以编程方式在datagrid行上进入编辑模式

Wpf 以编程方式在datagrid行上进入编辑模式,wpf,wpfdatagrid,Wpf,Wpfdatagrid,我有以下请求:通过单击按钮从datagrid(WPF)中添加和删除项目。当用户在datagrid中添加新行(新项)时,我希望自动在此新项上进入编辑模式。如果SelectionUnit是Cell,这将起作用,但我希望它是FullRow。在调用datagrig.BeginEdit()之前,我尝试将SelectionUnit更改为Cell,但它不起作用 代码如下: <DataGrid Name="dgDatagrid" Margin="20,20,3,3" CanUserSortColumns

我有以下请求:通过单击按钮从datagrid(WPF)中添加和删除项目。当用户在datagrid中添加新行(新项)时,我希望自动在此新项上进入编辑模式。如果SelectionUnit是Cell,这将起作用,但我希望它是FullRow。在调用datagrig.BeginEdit()之前,我尝试将SelectionUnit更改为Cell,但它不起作用

代码如下:

<DataGrid Name="dgDatagrid"  Margin="20,20,3,3" CanUserSortColumns="True" ItemsSource="{Binding AllItems}"
    AutoGenerateColumns="False" SelectionUnit="FullRow"  SelectionMode="Single" CanUserAddRows="False" CanUserDeleteRows="False"
    CanUserResizeRows="True" CanUserReorderColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="First column name" MinWidth="160" Binding="{Binding Path=FirstColumn}"/>
        <DataGridCheckBoxColumn Header="Second column name" MinWidth="100" Binding="{Binding Path=SecondColumn, UpdateSourceTrigger=PropertyChanged}"/>
    </DataGrid.Columns>
</DataGrid>
private void AddNewItem()
{
    var newItem = new Item();
    AllItems.Add(newItem);
    dgDatagrid.ScrollIntoView(newItem );
    dgDatagrid.SelectedItem = newItem ;
    var selectedIndex = dgDatagrid.SelectedIndex;

    dgDatagrid.SelectionUnit = DataGridSelectionUnit.Cell;
    dgDatagrid.CurrentCell = new DataGridCellInfo(dgDatagrid.Items[selectedIndex], dgDatagrid.Columns[0]);
    dgDatagrid.BeginEdit();
    dgDatagrid.SelectionUnit = DataGridSelectionUnit.FullRow;
}