ok... First, shared source just rocks. I spent the last several hours implementing
a new feature in IronPython, exposing dynamic properties through ICustomTypeDescriptor...
no waiting for months to debate the feature, nothing. If Jim decides that the feature
sucks, no worries. If he loves it, I'll send him the source code... super cool.
Second, what this means is that I can now data bind to the properties that I attach
in python... combine that with ContentControl, and you suddenly get true cool stuff...
To really appreciate the picture, you have to grok this:
class Item(Object):
pass
a = Item()
a.name = 'first'
a.value = 'cool value'
b = Item()
b.name = 'second'
b.value = Button(Content='cooler value')
c = Item()
c.name = 'third'
c.value = TextBox(Text='whatever')
_list.ItemsSource = [a, b, c].GetObjectArray()
_list is the ListBox, I have a template (style.visualtree) that simply has two content
controls, one bound to "name", the other to "value". I define a new type in python,
with *no properties*. I then dynamically assign anything to the objects
with the name "name" and "value"... everything else is Avalon + Python goodness...
oh yeah!