防止在数据网格上添加空行

时间:2014-07-31 11:45:48

标签: c# wpf mvvm datagrid

我有一个数据网格,当用户点击数据网格上的任何单元格时,我想在其中禁用底部创建的新行。我只想要默认行为,按下回车键时在底部添加空行。

这是我的Datagrid:

 <custom:CustomDataGrid ItemsSource="{Binding Items}"
                           AutoGenerateColumns="False"
                           RowHeight="27"
                           Grid.Row="1"
                           SelectionUnit="CellOrRowHeader"
                           RowHeaderWidth="30"
                           CanUserAddRows="true">
        <custom:CustomDataGrid.Columns>
            <custom:CustomDataGridTextColumn  Header="Product Name"
                                              Binding="{Binding ProductName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                                              Width="250" />
            <custom:CustomDataGridTextColumn  Header="Unit Price"
                                              Binding="{Binding UnitPrice,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                                              Width="130" />
            <custom:CustomDataGridTextColumn  Header="Qty"
                                              Binding="{Binding Quantity,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                                              Width="130" />
            <custom:CustomDataGridTextColumn  Header="Amount"
                                              Binding="{Binding Amount,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                                              Width="130"
                                              IsLastEditableColumn="True" />
        </custom:CustomDataGrid.Columns>
    </custom:CustomDataGrid>

当用户在数据网格上选择其他单元格时,如何防止将空行添加到数据网格

2 个答案:

答案 0 :(得分:2)

要防止添加空白行,您可以将CanUserAddRows上的属性DataGrid设置为false。

要仍然能够添加行,您可以处理其中一个关键事件(例如KeyDown等),将空/默认产品添加到Items,并将焦点设置为第一个可编辑列。按下Enter键时的新项目。

答案 1 :(得分:1)

尝试在DataGrid XAML中设置IsReadOnly="True"