コンテナを複雑なオブジェクトの配列にバインドする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; }
}
}
2つの場合を除いて、すべてが正常に機能します。
たとえば、array _parametersにアイテムが2つしかない場合、デフォルトの配列サイズは4で、インデックス2と3のアイテムはnullです。PropertyGridは、これらのアイテムを空のフィールドとして表示します。PropertyGridにこれらのフィールドを無視させ、単に表示しないようにするにはどうすればよいですか?
_parameters変数は配列型であるため、_parameters項目は0からnまでのインデックスで表示されます。配列からのインデックスではなく、プロパティParamObject.Nameからの名前でそれらを表示する可能性はありますか?