I guess in some ways this also addresses my post from January 
<http://lists.ironpython.com/pipermail/users-ironpython.com/2010-January/012013.html>
 which was never answered.


On Feb 8, 2010, at 10:07 PM, Dino Viehland wrote:

> On the IValueConverter side of things: I haven’t debugged through this but I 
> have a guess as to what could be going on.  When we emit a type via 
> reflection I don’t believe it’s available via Type.GetType – which is the way 
> types usually get loaded by name.  If you attach a debugger I think you’d 
> probably see an exception when trying to load the type.
>  
> The usual solution for this would be to combine pre-compiled subtypes and 
> then save the generated type to disk and re-load it.  You need the 
> pre-compiled subtypes because you can’t reference a transient assembly (which 
> our in-memory subtypes are) from a non-transient one.  But that’s not going 
> to be immediately viable in Silverlight because the pre-compiled type will be 
> a desktop CLR type.  So you could use pre-compiled types on the desktop and 
> try to re-write the generated assembly but it seems like that’s never worked 
> for anyone in the past. 
>  
> I have no clue on the PARSER_BAD_PROPERTY_VALUE error.
>  
> From: users-boun...@lists.ironpython.com 
> [mailto:users-boun...@lists.ironpython.com] On Behalf Of Michael Foord
> Sent: Monday, February 08, 2010 12:21 PM
> To: Discussion of IronPython
> Subject: [IronPython] Databinding a color in the datagrid in Silverlight
>  
> Hello all,
> 
> We've been successfully using clrtype with IronPython 2.6 and Silverlight for 
> databinding, based on the example provided by Lukáš:
> 
>     
> http://gui-at.blogspot.com/2009/11/inotifypropertychanged-and-databinding.html
> 
> We create the binding when we create the datagrid columns programatically.
> 
> Today I've been trying (and failing) to get a column in the grid show 
> different colors based on databinding.
> 
> I've got the colored bubble *showing* in the grid, but can't get databinding 
> to the color to work.  First the basics.
> 
> This is the xaml for the bubble with a fixed color:
> 
> <DataTemplate xmlns='http://schemas.microsoft.com/client/2007'
>  xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
>     <Ellipse Stroke="#FF222222" Height="15" Width="15">
>         <Ellipse.Fill>
>            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
>               <GradientStop x:Name="bubbleColor" Offset="0.694"
>                Color="#FF00FF40" />
>               <GradientStop Color="#FFE6E6E6"/>
>            </LinearGradientBrush>
>         </Ellipse.Fill>
>     </Ellipse>
> </DataTemplate>
> 
> I can add a column based on this template very simply:
> 
>         from com_modules.loadxaml import loadXaml
>         from System.Windows.Controls import DataGridTemplateColumn
>         column = DataGridTemplateColumn()
>         column.CellTemplate = loadXaml('templatecolumn')
>         column.Header = 'Bubble'
>         
>         grid.Columns.Add(column)
> 
> If I try to naively specify a binding in the xaml then I get a 
> PARSER_BAD_PROPERTY_VALUE when I attempt to load the xaml (so no hope of 
> setting up the binding after load):
> 
>     <GradientStop x:Name="bubbleColor" Offset="0.694" Color="{Binding color}" 
> />
> 
> 
> One approach I tried was to create a ValueConverter. Here is the skeleton of 
> the class I created:
> 
> from System import Type
> from System.Globalization import CultureInfo
> from System.Windows.Data import IValueConverter
> 
> class ColorConverter(IValueConverter):
>     _clrnamespace = "Converters"
>     __metaclass__ = clrtype.ClrClass
>     
>     @clrtype.accepts(object, Type, object, CultureInfo)
>     @clrtype.returns(object)
>     def Convert(self, value, targetType, parameter, culture):
>         pass
>     
>     @clrtype.accepts(object, Type, object, CultureInfo)
>     @clrtype.returns(object)
>     def ConvertBack(self, value, targetType, parameter, culture):
>         pass
> 
> As there is a _clrnamespace specified I thought I might then be able to use 
> this converter in xaml. Trying to reference the ColorConverter class in the 
> Converters namespace in a resources dictionary again causes blow ups when 
> loading the xaml.
> 
> Setting this up programatically would be ideal. Anyone got any ideas?
> 
> All the best,
> 
> Michael
> 
> 
> -- 
> http://www.ironpythoninaction.com/
> http://www.voidspace.org.uk/blog
>  
> READ CAREFULLY. By accepting and reading this email you agree, on behalf of 
> your employer, to release me from all obligations and waivers arising from 
> any and all NON-NEGOTIATED agreements, licenses, terms-of-service, 
> shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, 
> non-compete and acceptable use policies (”BOGUS AGREEMENTS”) that I have 
> entered into with your employer, its partners, licensors, agents and assigns, 
> in perpetuity, without prejudice to my ongoing rights and privileges. You 
> further represent that you have the authority to release me from any BOGUS 
> AGREEMENTS on behalf of your employer.
>  
> 
> 
> -- 
> http://www.ironpythoninaction.com/
> http://www.voidspace.org.uk/blog
>  
> READ CAREFULLY. By accepting and reading this email you agree, on behalf of 
> your employer, to release me from all obligations and waivers arising from 
> any and all NON-NEGOTIATED agreements, licenses, terms-of-service, 
> shrinkwrap, clickwrap, browsewrap, confidentiality, non-disclosure, 
> non-compete and acceptable use policies (”BOGUS AGREEMENTS”) that I have 
> entered into with your employer, its partners, licensors, agents and assigns, 
> in perpetuity, without prejudice to my ongoing rights and privileges. You 
> further represent that you have the authority to release me from any BOGUS 
> AGREEMENTS on behalf of your employer.
>  
> _______________________________________________
> Users mailing list
> Users@lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to