有没有办法以编程方式解析绑定表达式?我有一个模板化控件,它有很多我不想公开的复杂内部工作原理。它需要一个列表,并公开一个完整项目视图的模板,以及修改单个项目模板的一些细节。我想在我的控件上有三个属性作为绑定路径,所以我可以公开一个模板,如下所示:
<src:MyControl x:Name="MyControl"
FullViewTemplate="{StaticResource FullViewTemplate}"
TopValueBinding="Items[2]"
BottomValueBinding="Items[6]"
CategoryBinding="Items[5]"/>
在内部,我想获取整个数据上下文并将其提供给值转换器,这将解决我的可配置绑定路径。像这样的东西:
PropertyPath path = new PropertyPath("Items[0]");
var value = Convert.ToDecimal(path.Resolve(dataSource));
我目前使用属性名称和反射来提取值,但这不具备处理复杂数据类型的灵活性,并且我不想编写大量的解析和反射逻辑来检索字段值。
编辑:或者,能够做这样的事情会很棒:
{Binding Path={TemplateBinding BottomValueMember}, Converter={StaticResource ScaleValueConverter}}
但这似乎不起作用。有什么想法吗?