Silverlight - Programatically Resolving Binding Expression
===

Is there any way to programatically resolve a binding expression? I have a templated control that has a lot of complicated inner workings that I do not want to expose. It takes a list, and exposes a template for a full item view, and some details to modify the individual item templates. I'd like to have three properties on my control as binding paths, so I can expose a template as follows:

           <src:MyControl x:Name="MyControl" 
                               FullViewTemplate="{StaticResource FullViewTemplate}"
                               TopValueBinding="Items[2]"
                               BottomValueBinding="Items[6]"
                               CategoryBinding="Items[5]"/>



Inside, I would like to take the whole datacontext and supply it to a value converter, which will resolve my configurable binding path. Something like this:

            PropertyPath path = new PropertyPath("Items[0]");
            var value = Convert.ToDecimal(path.Resolve(dataSource));


I currently use the property name and reflection to extract values, but this does not have the flexibility to work with complex data types, and I don't want to have to write a massive block of parsing and reflection logic to retrieve field values.

Cheers

Regards

Tristan