在 属性 网格 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; }
我正在用 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; }