如何在运行时以各种方式修改propertygrid?我希望能够添加和删除属性并添加"动态类型",我的意思是使用TypeConverter导致在propertygrid中生成运行时生成的下拉列表.
我实际上已经能够做这两件事(添加/删除属性和添加动态类型)但不能同时单独使用.
为了实现在运行时添加和删除属性的支持,我使用了这个代码项目文章并稍微修改了代码以支持不同的类型(不仅仅是字符串).
private System.Windows.Forms.PropertyGrid propertyGrid1;
private CustomClass myProperties = new CustomClass();
public Form1()
{
InitializeComponent();
myProperties.Add(new CustomProperty("Name", "Sven", typeof(string), false, true));
myProperties.Add(new CustomProperty("MyBool", "True", typeof(bool), false, true));
myProperties.Add(new CustomProperty("CaptionPosition", "Top", typeof(CaptionPosition), false, true));
myProperties.Add(new CustomProperty("Custom", "", typeof(StatesList), false, true)); //<-- doesn't work
}
/// <summary>
/// CustomClass (Which is binding to property grid)
/// </summary>
public class CustomClass: CollectionBase,ICustomTypeDescriptor
{
/// <summary>
/// Add CustomProperty to Collectionbase List
/// </summary>
/// <param name="Value"></param> …Run Code Online (Sandbox Code Playgroud) 众所周知,当你想在Visual Studio Debugger中查看复杂对象的内部变量时,你会得到类似这样的类名,你必须展开它才能看到公共属性:

我试图使用这个问题的答案中的代码,而不是为每个类重写toString方法.
但它似乎没有任何区别.我还能尝试什么?