Cómo personalizar los datos de formato en datagridview durante el enlace de datos

Estoy buscando una forma de formatear DataGridViewTextBoxColumn para que el valor a enlazar se formatee durante la vinculación de datos. Por ejemplo, tengo una propiedad CompanyName y debo tomar las primeras 5 letras de CompanyName cuando ocurre el enlace de datos.

Podría conectar diferentes eventos de DataGridView (por ejemplo, RowsAdded) y recorrer todas las filas y hacer el truco, pero me gustaría encontrar una forma más sofisticada de hacerlo. Desde que decidí usar el enlace de datos, hacer un bucle a través de los datos y modificarlo es un poco en contra del concepto de enlace de datos.

Lo que busco es cómo hacer lo mismo que a continuación, pero agregar lógica de formato personalizado:

dataGridView1.Columns[colSomeDate.Index].DataPropertyName = "SomeDate";
colSomeDate.DefaultCellStyle.Format = "yyyy";

Creo que debería implementar IFormatProvider, pero no entiendo muy bien cómo debo implementarlo.

dataGridView1.Columns[companyName.Index].DataPropertyName = "CompanyName";
companyName.DefaultCellStyle.FormatProvider = new ShortText(); // ShortText should implement IFormatProvider