0

我正在开发一个编辑器,它反映我的类并将它们转换为 UI 字段,让我通过更改 UI 中字段的值并保存它们来创建对象文件。

问题是当我使用通用列表时,编辑器构建器停止,因为它不知道列表中对象的类型来反映它,它一直将对象视为object.

我只需要知道列表或字典中对象的类型以反映它。

编码 :

class ListUIEditor<T> : BaseEditor where T : new()
{
    void BuildEditor()
    {
       Button addbutton = new Button("+");
       addbutton.Clicked += add_Event;

        for (int i = 0; i < ((List<T>)base.boundObject).Count; i++)
        {
            container = new Container();         
            ObjectUIEditor editor = new ObjectUIEditor("itemName",
                                                       ((List<T>)base.boundObject)[i], 
                                                       container);
            editor.buildEditor();
            itemsSubEditors.Add(i, editor);
        }
    }

    protected void add_Event(object sender, EventArgs e)
    {       
        T newObject = new T();          
        container = new Container();            
        ObjectUIEditor editor = new ObjectUIEditor("itemName", newObject, container);
        editor.buildEditor();           
        itemsBox.ShowAll();
    }
}
4

1 回答 1

0

尝试这个:

Type type = listObj.GetType().GetGenericArguments()[0];

参考

于 2013-06-29T10:03:20.800 回答