在 属性 网格 c# 中使用显示数据注释

Using display data annotations in property grid c#

我正在用 C# 创建一个 Windows 表单应用程序并在其中使用 属性 网格。我在其中显示 Person class 对象的属性,并想使用显示数据注释来设置 属性 的描述、属性的显示顺序和其他内容。 为了实现相同的功能,我在我的代码中添加了对 System.ComponentModel.DataAnnotations 的引用,我的 Person class 的代码如下所示:

class Person
    {
        [Display(Name = "First Name", Order = 1,
        Prompt = "Enter First Name", Description = "Person First Name")]
        public string firstname { get; set; }
        [Display(Name = "Last Name", Order = 2,
        Prompt = "Enter Last Name", Description = "Person Last Name")]
        public string lastname { get; set; }
        [Display(Name = "Age", Order = 3,
        Prompt = "Enter Age", Description = "Person Age")]
        public int age { get; set; }
    }

但是数据注释不起作用。这是我的应用程序中 属性 网格的屏幕截图。screenshot of property grid

我无法理解为什么数据注释在我的代码中不起作用。任何人都可以帮忙吗?有什么我想念的吗?我需要实现任何代码段才能使它们工作吗?

将 属性 网格的 属性 PropertySort 设置为 PropertySort.NoSort 和属性将按照声明的顺序显示

propertyGrid1.PropertySort = PropertySort.NoSort;

如果您使用 System.ComponentModel 命名空间中的属性,似乎可以工作,例如:

[Description("This is the First Name")] 
[DisplayName("First Name")]       
public string firstname { get; set; }