I should have mentioned that I am indeed using IronPython 1.1.1.
>From what I can tell the objects are working very nicely with WinForms with
the exception of PropertyGrid.
Were you using Propertygrid specifically?
C
On Wed, Apr 23, 2008 at 11:00 AM, Pigneri, Rocco <rpigneri at lavastorm.com>
wrote:
> Dear Charles,
>> I ran into the same problem you are experiencing a few months ago while
> using Python 1.1. The problem is that the WinForms reflection is looking
> for static properties. IronPython 1.1 objects, being dynamic, lack the
> proper metadata to guide the WinForms classes to do the right thing.
>> Try 1.1.1. That will allow WinForms to find a *whole* lot of things
> (including all your public methods). My guess is that it may be easier for
> you to turn off these extra elements rather than to create a separate C#
> assembly to hold static interfaces.
>> It would be great to clean up these staticized properties in 1.1.2 to
> include only properties defined with the "property" function. That would
> really help anyone using static data binding in WinForms (or any other part
> of the BCL for that matter).
>> Hope that helps,
>> Rocco
>> ------------------------------
> *From:* users-bounces at lists.ironpython.com [mailto:
>users-bounces at lists.ironpython.com] *On Behalf Of *Charles Mason
> *Sent:* Wednesday, April 23, 2008 9:31 AM
> *To:* users at lists.ironpython.com> *Subject:* [IronPython] System.Windows.Forms.PropertyGrid and Python
> objects
>> 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
>Users at lists.ironpython.com>http://lists.ironpython.com/listinfo.cgi/users-ironpython.com>>-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20080423/6ba2a4fc/attachment.html>