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



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

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; }
}

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

我无法理解为什么数据注释在我的代码中不起作用。谁能帮忙?我错过了什么吗?我是否需要实现任何代码段才能使它们工作?

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

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

将 propertyGrid 的属性PropertySort设置为PropertySort.NoSort属性将按声明顺序显示

propertyGrid1.PropertySort = PropertySort.NoSort;

最新更新