Domanda

Sto riscontrando problemi nel tentativo di regolare la larghezza di una colonna di un datagrid. Ho usato la risposta pubblicata qui , ma Non riesco a risolverlo.

Sto usando un Elenco di oggetti come origine dati. In questo semplice esempio, ho appena creato un'applicazione per dispositivo intelligente e ho appena aggiunto un datagrid. Quindi il mio codice è questo:

    public Form1()
    {            
        InitializeComponent();

        List<Prueba> lista = new List<Prueba>();
        lista.Add(new Prueba("uno", "dos"));
        lista.Add(new Prueba("tres", "cuatro"));

        dataGrid1.DataSource = lista;
        DataGridTableStyle tableStyle = new DataGridTableStyle();
        tableStyle.MappingName = lista.GetType().ToString();
        DataGridTextBoxColumn tbcName = new DataGridTextBoxColumn();
        tbcName.Width = 4000;
        tbcName.MappingName = "UNO";
        tbcName.HeaderText = "UNO";
        tableStyle.GridColumnStyles.Add(tbcName);
        dataGrid1.TableStyles.Clear();
        dataGrid1.TableStyles.Add(tableStyle);
    }
}

public class Prueba
{
    public string UNO { get; set; }
    public string DOS { get; set; }

    public Prueba(string uno, string dos)
    {
        this.UNO = uno;
        this.DOS = dos;
    }
}

La larghezza rimane la stessa. Hai un indizio? Grazie!

È stato utile?

Soluzione

Cambia questa riga

tableStyle.MappingName = lista.GetType().ToString();

a

tableStyle.MappingName = lista.GetType().Name;

Oh, e 4000 è un po 'grande per un cellulare, ma suppongo che sia un errore di battitura.

Altri suggerimenti

Per chiunque utilizzi una DataTable come DataSource anziché una lista, sembra che tu debba cambiare:

tableStyle.MappingName = lista.GetType().Name;

a:

tableStyle.MappingName = lista.TableName;

Mi ci è voluto un po 'per capirlo!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top