2011-05-28 56 views
0

我有一个通过* MemberPath属性使用旧式数据绑定的控件。但是,我的情况需要使用DynamicObject。当你获得该动态对象的类型并调用GetProperty(..)时,它将返回null(因为对象本身不包含这样的属性 - 它是一个动态对象)。所以..我该如何解决这个问题?如何使用动态属性绑定对象,使视图使用旧式数据绑定方法?Silverlight 4,数据绑定和动态对象

回答

1

你在Silverlight 4中运气不佳。Silverlight 5(测试版)具有允许绑定到动态属性的ICustomTypeProvider接口,但Silverlight 4没有这个功能。在Silverlight 5发布之前,您有两种选择:

1)编写一个值转换器以获取对象的值。

OR

2)让你的对象上的索引,当通过了“财产”的名称,返回相应的值。然后你可以提取这样的值:

Binding="{Binding [PropertyName]}" 

选项2是IMO的最佳选择。

+0

感谢您的回复。不幸的是,我不能像这样使用绑定,因为我有* MemberPath属性(在后台调用obj.GetType()。GetProperty(...)) – 2011-05-28 13:21:13