Свойство Columns
Datagrid является ObservableCollection<DataGridColumn>
. Там вы найдете все, что вам нужно. Если вы хотите узнать, видим ли какой-либо столбец, просто отметьте MyDatagrid.Columns[i].Visibility
Добавить столбцы в код просто:
DataGridTemplateColumn col = new DataGridTemplateColumn();
MyDatagrid.Columns.Add(col);