Ho passato un bel pò di tempo a cercare di capire perché definendo la DataGridTableStyle con le relative DataGridTextBoxColumn e aggiungendola alla DataGrid.TableStyles collection, le mie impostazioni non venivano mai applicate.
La DataGrid ha la proprietà DataSource impostata su una mia collection di oggetti di tipo BindingList<T> come segue:
BindingList<StorageUnit> storageUnits = new BindingList<StorageUnit>();
A parte il tempo perso perche avevo omesso di valorizzare la proprietà dataGridTableStyle.MappingName, poi scoperto l'arcano ho scritto così:
dataGridTableStyle.MappingName = "storageUnits";
ma purtroppo non funziona.
Girando girando ho trovato la soluzione, basta ricavare il nome dalla proprietà DataSource della DataGrid con il seguente codice:
DataGridTableStyle dataGridTableStyle = new DataGridTableStyle();
dataGridTableStyle.MappingName = this.dataGrid.DataSource.GetType().Name;
Andando...