[IronPython] System.Windows.Forms.PropertyGrid and Python obj ects

Charles Mason cemasoniv at gmail.com
Wed Apr 23 17:52:08 CEST 2008


Yes.

It's the only article that's worth reading that google turned up.

On Wed, Apr 23, 2008 at 11:30 AM, Masters, Christopher <
christopher.masters at credit-suisse.com> wrote:

>  Is it related to this?
>
> http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=13405
>
>
>  ------------------------------
> *From:* users-bounces at lists.ironpython.com [mailto:
> users-bounces at lists.ironpython.com] *On Behalf Of *Charles Mason
> *Sent:* 23 April 2008 16:26
> *To:* Discussion of IronPython
> *Subject:* Re: [IronPython] System.Windows.Forms.PropertyGrid and Python
> objects
>
> 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
>>
>>
> ==============================================================================
> Please access the attached hyperlink for an important electronic communications disclaimer:
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> ==============================================================================
>
>
> _______________________________________________
> 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/e8d9b026/attachment.html>


More information about the Ironpython-users mailing list