0
我必须我结合的容器与复杂的对象的阵列的PropertyGrid控件:PropertyGrid控件+定制的对象数组
// Collection
public class ParametersCollection
{
private ParameterObject [] _parameters = null;
[Category("SubReportParams")]
public ParameterObject [] Parameters
{
get { return _parameters; }
set { _parameters = value; }
}
public ParametersCollection()
{
// _parameters initialization here...
}
}
// Complex object
public class ParameterObject
{
private string _name = "";
private string _value = "";
[Category("Information"), DisplayName("Name")]
public string Name
{
get { return _name; }
set { _name = value; }
}
[Category("Information"), DisplayName("Value")]
public string Value
{
get { return _value; }
set { _value = value; }
}
}
一切正常,除了两种情况:
例如,如果数组_parameters只有2个项目,则默认数组大小为4,而索引2和3的项目为空值。 PropertyGrid将这些项目显示为空字段。如何强制PropertyGrid忽略这些字段并且不显示它?
_parameters变量是一个数组类型,所以_parameters项显示其索引从0到n。是否有一个posibillity来显示他们的名字从属性ParamObject.Name而不是他们的数组中的索引?
感谢您的回复。在第一种情况下,“return _parameters.Where(p => p!= null).ToArray();”是正确的提示:-)他解决第二个问题是使用ICustomTypeDescriptor。 – 2013-03-26 06:33:32