首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

需要将Class 绑定到PropertyGrid, 哪位高手能提供一个通用的 ExpandableObjectConverter

2013-09-07 
需要将Class 绑定到PropertyGrid, 谁能提供一个通用的 ExpandableObjectConverter本帖最后由 kaixin2015

需要将Class 绑定到PropertyGrid, 谁能提供一个通用的 ExpandableObjectConverter
本帖最后由 kaixin2015 于 2013-09-03 13:05:18 编辑 有一些类似 于以下代码的类,类是通过CodeDom自动生成的:


namespace MyDataProperties
{
    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class MyDataList
    {
        [Description("")]
        public text text { get; set; }
        [Description("")]
        public string time { get; set; }
    }
    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class text
    {
        public string first_Name { get; set; }
        public second_Name second_Name { get; set; }
        public aaaa aaaa { get; set; }
    }
    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class second_Name
    {
        public string[] abc { get; set; }
    }
    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class aaaa
    {
        public string a1 { get; set; }
        public string a2 { get; set; }
        public a3 a3 { get; set; }
    }
    [TypeConverter(typeof(ExpandableObjectConverter))]
    public class a3
    {
        public string a3_1 { get; set; }
    }
}


将类 MyDataList 绑定到 PropertyGrid ,以通过PropertyGrid 为类的所有属性赋值。
但目前对于MyDataList中的复杂类型无法展开,不知道有没有一个通用的 ExpandableObjectConverter 类


[解决办法]
给你的MyDataList中的text赋值下试试
[解决办法]
是让你后台赋值,默认情况下那个test为null,null自然无法展开,你必须在get方法里面判断下,如果为null就返回一个默认值:
private test _test;
public test test
{
    get{return _test??new test();}
    set{_test=value;}
}

热点排行