<html><head><base href="x-msg://5/"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>I guess in some ways this also addresses my post from January &lt;<a href="http://lists.ironpython.com/pipermail/users-ironpython.com/2010-January/012013.html">http://lists.ironpython.com/pipermail/users-ironpython.com/2010-January/012013.html</a>&gt; which was never answered.</div><div><br></div><br><div><div>On Feb 8, 2010, at 10:07 PM, Dino Viehland wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div bgcolor="white" lang="EN-US" link="blue" vlink="purple"><div class="Section1"><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">On the IValueConverter side of things: I haven’t debugged through this but I have a guess as to what could be going on.&nbsp; 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.&nbsp; If you attach a debugger I think you’d probably see an exception when trying to load the type.<o:p></o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p>&nbsp;</o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">The usual solution for this would be to combine pre-compiled subtypes and then save the generated type to disk and re-load it.&nbsp; 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.&nbsp; But that’s not going to be immediately viable in Silverlight because the pre-compiled type will be a desktop CLR type.&nbsp; 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.&nbsp;<o:p></o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p>&nbsp;</o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); ">I have no clue on the PARSER_BAD_PROPERTY_VALUE error.<o:p></o:p></span></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: rgb(31, 73, 125); "><o:p>&nbsp;</o:p></span></div><div style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-width: initial; border-color: initial; border-left-style: solid; border-left-color: blue; border-left-width: 1.5pt; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; padding-left: 4pt; "><div><div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding-top: 3pt; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; "><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: windowtext; ">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: windowtext; "><span class="Apple-converted-space">&nbsp;</span><a href="mailto:users-bounces@lists.ironpython.com" style="color: blue; text-decoration: underline; ">users-bounces@lists.ironpython.com</a><span class="Apple-converted-space">&nbsp;</span>[mailto:users-bounces@lists.ironpython.com]<span class="Apple-converted-space">&nbsp;</span><b>On Behalf Of<span class="Apple-converted-space">&nbsp;</span></b>Michael Foord<br><b>Sent:</b><span class="Apple-converted-space">&nbsp;</span>Monday, February 08, 2010 12:21 PM<br><b>To:</b><span class="Apple-converted-space">&nbsp;</span>Discussion of IronPython<br><b>Subject:</b><span class="Apple-converted-space">&nbsp;</span>[IronPython] Databinding a color in the datagrid in Silverlight<o:p></o:p></span></div></div></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><o:p>&nbsp;</o:p></div><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; ">Hello all,<br><br>We've been successfully using clrtype with IronPython 2.6 and Silverlight for databinding, based on the example provided by Lukáš:<br><br>&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><a href="http://gui-at.blogspot.com/2009/11/inotifypropertychanged-and-databinding.html" style="color: blue; text-decoration: underline; ">http://gui-at.blogspot.com/2009/11/inotifypropertychanged-and-databinding.html</a><br><br>We create the binding when we create the datagrid columns programatically.<br><br>Today I've been trying (and failing) to get a column in the grid show different colors based on databinding.<br><br>I've got the colored bubble *showing* in the grid, but can't get databinding to the color to work.&nbsp; First the basics.<br><br>This is the xaml for the bubble with a fixed color:<br><br>&lt;DataTemplate xmlns='<a href="http://schemas.microsoft.com/client/2007" style="color: blue; text-decoration: underline; ">http://schemas.microsoft.com/client/2007</a>'<br>&nbsp;xmlns:x='<a href="http://schemas.microsoft.com/winfx/2006/xaml" style="color: blue; text-decoration: underline; ">http://schemas.microsoft.com/winfx/2006/xaml</a>'&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Ellipse Stroke="#FF222222" Height="15" Width="15"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Ellipse.Fill&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;GradientStop x:Name="bubbleColor" Offset="0.694"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Color="#FF00FF40" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;GradientStop Color="#FFE6E6E6"/&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/LinearGradientBrush&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Ellipse.Fill&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/Ellipse&gt;<br>&lt;/DataTemplate&gt;<br><br>I can add a column based on this template very simply:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from com_modules.loadxaml import loadXaml<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; from System.Windows.Controls import DataGridTemplateColumn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; column = DataGridTemplateColumn()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; column.CellTemplate = loadXaml('templatecolumn')<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; column.Header = 'Bubble'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; grid.Columns.Add(column)<br><br>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):<br><br>&nbsp;&nbsp;&nbsp; &lt;GradientStop x:Name="bubbleColor" Offset="0.694" Color="{Binding color}" /&gt;<br><br><br>One approach I tried was to create a ValueConverter. Here is the skeleton of the class I created:<br><br>from System import Type<br>from System.Globalization import CultureInfo<br>from System.Windows.Data import IValueConverter<br><br>class ColorConverter(IValueConverter):<br>&nbsp;&nbsp;&nbsp; _clrnamespace = "Converters"<br>&nbsp;&nbsp;&nbsp; __metaclass__ = clrtype.ClrClass<br>&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br>&nbsp;&nbsp;&nbsp; @clrtype.accepts(object, Type, object, CultureInfo)<br>&nbsp;&nbsp;&nbsp; @clrtype.returns(object)<br>&nbsp;&nbsp;&nbsp; def Convert(self, value, targetType, parameter, culture):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br>&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br>&nbsp;&nbsp;&nbsp; @clrtype.accepts(object, Type, object, CultureInfo)<br>&nbsp;&nbsp;&nbsp; @clrtype.returns(object)<br>&nbsp;&nbsp;&nbsp; def ConvertBack(self, value, targetType, parameter, culture):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass<br><br>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.<br><br>Setting this up programatically would be ideal. Anyone got any ideas?<br><br>All the best,<br><br>Michael<br><br><br><o:p></o:p></div><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; ">-- <o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><a href="http://www.ironpythoninaction.com/" style="color: blue; text-decoration: underline; ">http://www.ironpythoninaction.com/</a><o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><a href="http://www.voidspace.org.uk/blog" style="color: blue; text-decoration: underline; ">http://www.voidspace.org.uk/blog</a><o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><o:p>&nbsp;</o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; ">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.<o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><o:p>&nbsp;</o:p></pre><div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; color: black; "><br><br><o:p></o:p></div><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; ">-- <o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><a href="http://www.ironpythoninaction.com/" style="color: blue; text-decoration: underline; ">http://www.ironpythoninaction.com/</a><o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><a href="http://www.voidspace.org.uk/blog" style="color: blue; text-decoration: underline; ">http://www.voidspace.org.uk/blog</a><o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><o:p>&nbsp;</o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; ">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.<o:p></o:p></pre><pre style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 10pt; font-family: 'Courier New'; color: black; "><o:p>&nbsp;</o:p></pre></div></div>_______________________________________________<br>Users mailing list<br><a href="mailto:Users@lists.ironpython.com" style="color: blue; text-decoration: underline; ">Users@lists.ironpython.com</a><br><a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" style="color: blue; text-decoration: underline; ">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br></div></span></blockquote></div><br></body></html>