我正在编写一个反映我的类的编辑器,并将它们转换为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();
}
}