1

有没有办法使用为每个属性定义的 [DisplayName] 作为 a 中的字段PivotGridControl

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

使用以下代码导致 show IdNum as Pivot Fields,但我希望改为显示IdentifireNumber :

IList<Dto> result = CreateDtoList();
var bsOrderItems = new BindingSource(DataSource = result);
pivotGridControl.DataSource = bsOrderItems;
pivotGridControl.RetrieveFields();
4

2 回答 2

2

您可以将显示名称分配Captionfield.

例如:

//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;
于 2018-08-11T12:38:37.263 回答
1

应正确应用 DisplayName 属性。您的代码在最新版本 18.1 中为我正常运行。或者,考虑改用数据注释属性。将DisplayAttribute应用于必填字段。

于 2018-08-13T09:32:44.063 回答