假设我有一个IsEnabled属性使用绑定的按钮,它检查按钮的DataContext是否为预期类型。如果DataContext与类型匹配,则启用该按钮;否则,它被禁用。
在WPF中,我可以这样做:
IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter={x:Type Script:AstScriptProjectViewModel}}"
如何在Silverlight中执行此操作,其中x:Type不可用?
谢谢,
-Craig
答案 0 :(得分:2)
我最终通过更改转换器参数来使用字符串来解决此问题,我将其转换为转换器中的类型。例如,我的绑定现在如下:
IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter='Project.Script.AstScriptProjectViewModel'}"
在转换器中,我使用GetType将参数字符串转换为Type:
var typeString = parameter as string;
if (!string.IsNullOrWhiteSpace(typeString))
{
type = Type.GetType(typeString);
}
据我所知,x:Type不能在Silverlight中用作静态值。