在属性网格c#

时间:2017-08-02 04:11:42

标签: c# winforms data-annotations propertygrid

我在C#中创建一个Windows窗体应用程序并在其中使用属性网格。我在其中显示Person类对象的属性,并希望使用Display数据注释来设置属性的描述,显示属性的顺序和其他内容。 为了实现这一点,我在我的代码中添加了对 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; }
    }

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

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

2 个答案:

答案 0 :(得分:0)

将propertyGrid的属性NOTE:设置为Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("my.app"); if (launchIntent != null) { context.startActivity(launchIntent);//null pointer check in case package name was not found } 和属性将按声明的顺序显示

PropertySort

答案 1 :(得分:0)

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

import netCDF4 as nc
import numpy as np

ncfile   =   r'C:\\abcd\\55618_12.nc'
variableName =  'MAX'

fh = nc.Dataset(ncfile, mode='r')
val = fh.variables[variableName][:]
fh.close()

print type (val)

for i in range(500,600,1):
    for j in range(200,300,1):
        #print i,j
        val[i][j] = -99900.0
        if val[i][j]> -99900.0:
            print val[i][j]


fh = nc.Dataset(ncfile, mode='r+')
fh.variables[variableName][:]= val
fh.close()