Question

Je ne parviens pas à ajuster la largeur d'une colonne de grille de données. J'ai utilisé la réponse publiée ici , mais Je ne peux pas le résoudre.

J'utilise une liste d'objets comme source de données. Dans cet exemple simple, je viens de créer une application pour périphérique intelligent et d'ajouter une grille de données. Alors mon code est celui-ci:

    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 largeur reste la même. Avez-vous un indice? Merci!

Était-ce utile?

La solution

Changer cette ligne

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

à

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

Oh, et 4000 est un peu gros pour un mobile, mais je suppose que c'est une faute de frappe.

Autres conseils

Pour ceux qui utilisent DataTable comme source de données au lieu d'une liste, il semble que vous deviez changer:

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

à:

tableStyle.MappingName = lista.TableName;

Il m'a fallu du temps pour comprendre cela!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top