2012-03-31 3 views
0

У меня есть DataTable, который я вручную заполняю привязкой к DataGridView для отображения. Когда я вручную добавляю строку в DataTable, она не отображается в DataGridView. Столбцы есть, но теперь строки.DataGridView привязан к DataTable, не отображающему строки

Любые идеи?

((DataTable)((BindingSource)_dgv.DataSource)).Rows.Count // 2 
_dgv.Rows.Count // 0 
_dgv.Columns[0].IsDataBound // true, for all columns 

//code that adds rows 
DataRow productRow = dataTable.NewRow(); 
SetRowValues(productRow); 
dataTable.Rows.Add(productRow); 

//code to bind DataTable to DGV 
BindingSource bindingSrc = new BindingSource(); 
bindingSrc.DataSource = dataTable; 
DataGridView dgv = CreateDataGridView(); 
dgv.DataSource = bindingSrc; 

private DataGridView CreateDataGridView() 
{ 
    DataGridView dgv = new DataGridView(); 
    dgv.Anchor = (AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top); 
    dgv.ShowEditingIcon = false; 
    dgv.RowHeadersVisible = false; 
    dgv.ReadOnly = true; 
    dgv.AllowUserToAddRows = false; 
    dgv.ColumnHeadersVisible = true; 
    dgv.CellDoubleClick += new DataGridViewCellEventHandler(OnDGVCellDoubleClick); 
    dgv.SelectionChanged += new EventHandler(OnDGVSelectionChanged); 
    dgv.AutoGenerateColumns = false; 
    List<OpportunityProductField> configFields = GetConfigFields(); 
    List<DataGridViewColumn> columns = CreateDGVColumns(configFields); 
    columns.Sort(delegate(DataGridViewColumn c1, DataGridViewColumn c2) { return c1.DisplayIndex.CompareTo(c2.DisplayIndex); }); 
    columns.ForEach(delegate(DataGridViewColumn c) { dgv.Columns.Add(c); }); 
    return dgv; 
} 

ответ

0

Не должен ли ваш код привязки выглядеть следующим образом?

BindingSource bindingSrc = new BindingSource(); 
bindingSrc.DataSource = dataTable 
DataGridView dgv = CreateDataGridView(); 
dgv.DataSource = bindingSrc; 
+0

Да, вы в порядке. Я скопировал код неправильно. Сообщение обновлено. – Trent

Смежные вопросы