代码之家  ›  专栏  ›  技术社区  ›  Masoud

在DevExpress PivotGridControl中使用DisplayNameAttribute

  •  1
  • Masoud  · 技术社区  · 6 年前

    有没有办法使用为每个属性定义的[DisplayName]作为 PivotGridControl ?

    public class Dto
    {
       [DisplayName("Identifier")]
       public int Id {get;set;}
       [DisplayName("Number")]
       public string Num {get;set;}
       ...
       //other properties 
    }
    

    身份证件 号码 作为 Pivot Fields 标识 数字

    IList<Dto> result = CreateDtoList();
    var bsOrderItems = new BindingSource(DataSource = result);
    pivotGridControl.DataSource = bsOrderItems;
    pivotGridControl.RetrieveFields();
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Reza Aghaei    6 年前

    可以将显示名称指定给 Caption 财产 field .

    //using System.ComponentModel;
    var properties = TypeDescriptor.GetProperties(typeof(Dto));
    foreach (PropertyDescriptor p in properties)
        pivotGridControl.Fields[p.Name].Caption = p.DisplayName;
    

    或者你可以在 pivotGridControl.Fields 为每个人 PivotGridField

    //using System.ComponentModel;
    //using DevExpress.XtraPivotGrid;
    var properties = TypeDescriptor.GetProperties(typeof(Dto));
    foreach (PivotGridField f in pivotGridControl.Fields)
        f.Caption = properties[f.FieldName].DisplayName;
    
        2
  •  1
  •   Svetlana    6 年前

    应正确应用DisplayName属性。您的代码在最新版本18.1中对我来说运行正常。或者,考虑使用 Data Annotation Attributes 相反。应用 DisplayAttribute