Мы просто динамически создали элемент управления DataGridView и связали его с таблицей данных. Мы связывали стиль определенных столбцов. Но когда мы попытались получить доступ к столбцам, мы получили нулевую ссылку. При дальнейшем исследовании мы обнаружили, что если мы добавим элемент управления DataGridView в основную форму, а затем попытаемся получить доступ к его столбцам, он будет работать нормально !!!
Код, который выдает ошибку:
DataGridView gv = new DataGridView();
gv.DataSource = GetDataTable(); //binding it to datatable
Debug.Assert(gv.Columns == null);
Код, который отлично работает:
DataGridView gv = new DataGridView();
gv.DataSource = GetDataTable(); //binding it to datatable
this.Controls.Add(gv); //adding to form
Debug.Assert(gv.Columns == null); //the assertion fails!
Почему это поведение так? Есть ли обходной путь для этого?