CompactFramework DataGridTableStyle - Binding to IBindingList collection

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 di debugging, sapete cosa contiene la proprietà MappingName? Contiene il valore "BindingList`1".

Come dice qualcuno delle mie parti, "Che c'azzecca BindingList`1 con storageUnits?", muah.

posted @ venerdì 21 agosto 2009 23:46

Print
Comments have been closed on this topic.