DataGridView阻止自动增加id绑定列

时间:2013-12-05 12:04:41

标签: c# winforms datagridview

我有一个id(identity)列的数据库。此列绑定到我的DataGridView(WindowsForms)。每当我向DataGridView添加一行(它还没有添加到数据库,只是添加到DataGridView)时,此列中的数字会增加一。非常恼人的行为,我不知道如何阻止它?

我没有使用EF或类似的antyhing。只是DataGridView中的列(不是自动生成的,但是用户定义的列 - AutoGenerateColumns已关闭),添加到DataGridView并且每列都设置了DataPropertyName。

3 个答案:

答案 0 :(得分:1)

我不知道您的代码,但您是否尝试这样做:

datagridview1.AllowUserToAddRows = false;

并创建一个用于添加行的按钮,并使用

添加它
datagridview1.Rows.Add(-1,..,...);

答案 1 :(得分:0)

为什么不隐藏专栏?

dgvMyDataGridView.Columns["Id"].Visible = false;

答案 2 :(得分:0)

我还没有找到一种方法来阻止DataGridView自动增加id。但是,我现在可以更改DataGridView中的任何值,DataSource绑定到BindingList而不是DataTable,就像以前一样(每个ComboBoxItem必须实现INotifyPropertyChanged)。

private void initializeDgvNotesDataSource()
{            
    List<ComboBoxItem> list = new List<ComboBoxItem>();
    BindingList<ComboBoxItem> bindingList = new BindingList<ComboBoxItem>(list);
    BindingSource bindingSource = new BindingSource();
    bindingSource.DataSource = bindingList;
    dgvNotes.DataSource = bindingSource;
}