【问题标题】:Customize DataGrid for Win CE Device为 Win CE 设备自定义 DataGrid
【发布时间】:2015-03-04 11:17:58
【问题描述】:

我正在为windows ce编写应用程序,所以我必须使用VS 2008。

我在 dataGrid-Control 中显示一些数据(DataGridView 不可用!),我想自定义它。

grid.Columns[i].width 等内容不适用于这些控件。

我需要更改列宽和标题文本,我该如何实现? 数据网格在运行时通过以下行获取它的条目:

dgLatestPositions.DataSource = items;

items 是一个包含对象的列表,该表有 2 列。 除了这些问题之外,dataGrid 的视图工作正常。

编辑:也许是这样的? (它还没有工作)

DataGridTableStyle t = new DataGridTableStyle();
t.GridColumnStyles[0].HeaderText = "Coding";
t.GridColumnStyles[1].HeaderText = "Amount";
dgLatestPositions.TableStyles.Add(t);

编辑:

所有项目都包含在一个列表中。 article-objects 看起来是这样的: 公共类lastChanges

{
    public long coding { get; set; }
    public int amount { get; set; }
}

表格显示如下(示例)

编码 |金额

0123456789|3

0829346128|4

我需要做的是调整第一列的大小并更改标题

【问题讨论】:

    标签: c# datagrid windows-ce


    【解决方案1】:

    我们也有一个需要在 WindowsCE 下支持的应用程序,并且必须在 VS2008 中完成。您非常接近,我们所做的是创建了一个基类数据网格用于显示,并添加了一个方法来添加我们想要获取标题文本的列,绑定列源,然后是宽度。这是我们的方法,“myTblStyle”是您的 DataGridTableStyle“t”变量。

    public void AddColumn(string hdr, string colName, int colWidth)
    {
        DataGridTextBoxColumn tbc = new DataGridTextBoxColumn();
        tbc.HeaderText = hdr;
        tbc.MappingName = colName;
        tbc.Width = colWidth;
        myTblStyle.GridColumnStyles.Add(tbc);
    }
    

    【讨论】:

    • 谢谢!我有“文章”对象,每个对象包含 2 个值,这些值显示在网格中。所有对象都在 List
      中。如何将这些用作 colName?我现在有点迷茫
    • @Marcel,因为我使用 DataTable 作为我们资料的来源,而不是列表,所以我只是让它知道表格中的哪一列。如果你的是一个列表,一个什么的列表。每个列表 是否有一个字段/属性。如果不出意外,请忽略“colName”绑定并从中获取宽度。您没有描述您的“列表”对象结构是什么......而是从该对象结构中获取字段。
    • @Marcel,那么我认为您需要的映射只需要引用列表对象的相应“编码”和“数量”属性即可。在绑定上可能区分大小写。请注意,您可以有一个“$ Amount”的列标题和“Amount”或“amount”的列绑定,基于实际绑定......因此列标题文本与实际绑定的数据显示有所不同。
    • 我试试看。非常感谢!,注意:标题工作,但我仍然需要大小:/
    猜你喜欢
    • 1970-01-01
    • 2013-03-01
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多