So I've been through hell last night tearing my hear out trying to figure
out how to work PropertyGrid properly with a Python class object.
Things I've tried:
1) In Python, PropertyGrid.SelectedObject = pythonobj
2) In Python, Deriving PropertyGrid and overriding CreatePropertyTab
3) In C#, deriving a new class from PropertyGrid and implementing
public void SetPythonObject(Object obj)
{
this.SelectedObject = obj;
}
4) In C#, Overriding CreatePropertyTab() (I get a warning about hiding a
baseclass implementation -- sounds like this isn't overrideable)
5) In C#, creating a wrapper class:
class CustomHolder
{
private Object heldObj = null;
public Object held {
get { return heldObj; }
set { heldObj = value; }
}
CustomHolder(Object obj)
{
this.held = obj;
}
}
and in the derived PropertyGrid class:
public void SetPythonObject(Object obj)
{
this.SelectedObject = new CustomHolder(obj);
}
--
Only #5 so far has done anything worthwhile: In the property grid as a
single field I get what looks like str(obj) output:
<module.CLASSNAME instance at 0x................>
I've also considered using the TypeDescriptor() class/methods to create each
property grid entry myself, but I don't see anything at all about where
PropertyGrid gets its property fields from -- see #4.
Is there any way to do this conveniently (I'd prefer not to write a C#
custom dll, but am amiable to the requirement of doing so)?
Chuck
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com