Значение BindingContext
DataGridView
перед добавлением в контейнерный элемент управления равно нулю, а при настройке DataSource
для элемента управления проверяется, является ли значение BindingContext
пустым, столбцы и строки не добавляются, покапосле того, как BindingContext
изменится на ненулевое значение.
Если это элемент управления, который вы собираетесь добавить к родительскому элементу, то, добавив его в родительский, вы получите столбцы и строки:
this.Controls.Add(dgv);
Если он не будет добавлен в контейнер и, например, предназначен только для печати, вы можете установить BindingContext
для элемента управления:
dgv.BindingContext = new BindingContext();