我有一个 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 显示。是否可以使用属性 ParamObject.Name 中的名称而不是数组中的索引来显示它们?