2

我正在尝试更改集合属性在 Winforms PropertyGrid 中的显示方式。

而不是拥有

MyList | (Collection) [...]

并且必须按下按钮才能显示 CollectionEditor。我将列表扩展为 ExpandableObjectConverter。但我仍然得到 [...] 按钮。所以现在它看起来像这样。

[+] MyList | (2 Items) [...]
    Item 1 | Value
    Item 2 | Value

最终,我想将这个 [...] 替换为添加按钮。我只是不知道从哪里开始。如果我理解正确,CollectionEditor 是我按下 [...] 时显示的窗口。那么我需要覆盖什么对象才能删除和添加我自己的按钮。

谢谢

4

1 回答 1

6

从 继承一个新类CollectionEditor并覆盖GetEditStyle返回None以防止“...”按钮显示。

同样不幸的是,您不能Add使用标准属性网格添加按钮。您可以选择“...”、向下箭头或无按钮。

class CustomEditor : CollectionEditor
{
  public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
  {
    return UITypeEditorEditStyle.None;
  }
}

您可以使用以下属性将此新编辑器应用于属性:

[EditorAttribute(typeof(CustomEditor), typeof(UITypeEditor))]
于 2012-12-14T00:51:45.227 回答