2012-03-31 21 views
0

DataGridViewにバインドして手動で表示するDataTableがあります。 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

関連する問題