有什么方法可以将为每个属性定义的[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:

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

最佳答案

您可以将显示名称分配给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;

关于c# - 在DevExpress PivotGridControl中使用DisplayNameAttribute,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51799316/

10-11 01:52