سؤال

وأواجه مشاكل في محاولة لضبط عرض عمود من DataGrid قابلة لل. لقد استخدمت الجواب سجلت هنا ، ولكن لا أستطيع حلها.

وأنا باستخدام قائمة من الأشياء باعتبارها مصدر البيانات. في هذا المثال البسيط، لقد خلق مجرد تطبيق جهاز الذكية، وأضاف مجرد DataGrid قابلة لل. ثم قانون بلدي هو هذا:

    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;
    }
}

والعرض لا يزال هو نفسه. هل لديك دليل؟ شكرا لك!

هل كانت مفيدة؟

المحلول

تغيير هذا الخط

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

إلى

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

وأوه، و 4000 هو كبير قليلا عن الهاتف المحمول ولكن أفترض هذا هو الخطأ المطبعي.

نصائح أخرى

لأي شخص باستخدام DataTable وكما مصدر البيانات بدلا من القائمة، يبدو لديك لتغيير:

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

إلى:

tableStyle.MappingName = lista.TableName;

وأخذت مني بعض الوقت لمعرفة ذلك!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top