【问题标题】:Column width of a DataGrid in a Windows Mobile ApplicationWindows Mobile 应用程序中 DataGrid 的列宽
【发布时间】:2010-11-06 07:20:27
【问题描述】:

我在尝试调整数据网格列的宽度时遇到问题。我使用了here发布的答案,但我无法解决。

我使用对象列表作为数据源。在这个简单的示例中,我刚刚创建了一个智能设备应用程序,并添加了一个数据网格。那么我的代码就是这个:

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

宽度保持不变。你有线索吗?谢谢!

【问题讨论】:

    标签: c# windows-mobile datagrid width


    【解决方案1】:

    改变这一行

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

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

    哦,4000 对于手机来说有点大,但我认为这是一个错字。

    【讨论】:

    • 啊,谢谢!是的,它工作得很好。是的,4000 只是一个基于绝望的值:P
    【解决方案2】:

    对于使用 DataTable 而不是列表作为数据源的任何人,您似乎必须进行更改:

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

    到:

    tableStyle.MappingName = lista.TableName;
    

    我花了一段时间才弄明白!

    【讨论】:

      猜你喜欢
      • 2016-12-07
      • 2014-03-12
      • 2011-01-11
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多