在DevExpress PivotGridControl中使用DisplayNameAttribute

时间:2018-08-11 11:44:34

标签: c# winforms devexpress displayname-attribute pivot-grid

是否可以使用为每个属性定义的[DisplayName]作为PivotGridControl中的字段?

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

使用以下代码会导致显示 Id Num Pivot Fields,但是我希望显示 Identifire Number < / strong>:

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

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

DisplayName属性应正确应用。您的代码对我来说在最新版本18.1中正常运行。或者,考虑改用Data Annotation Attributes。将DisplayAttribute应用于必填字段。