Silverlight 4.0 如何在Silverlight中将类型作为转换器参数传递?

Silverlight 4.0 如何在Silverlight中将类型作为转换器参数传递?,silverlight-4.0,Silverlight 4.0,假设我有一个按钮,其IsEnabled属性使用绑定,该绑定检查按钮的DataContext是否为预期类型。如果DataContext与类型匹配,则按钮被启用;否则,它将被禁用 在WPF中,我可以按如下方式执行此操作: IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter={x:Type Script:AstScriptProjectViewModel}}" IsEna

假设我有一个按钮,其IsEnabled属性使用绑定,该绑定检查按钮的DataContext是否为预期类型。如果DataContext与类型匹配,则按钮被启用;否则,它将被禁用

在WPF中,我可以按如下方式执行此操作:

IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter={x:Type Script:AstScriptProjectViewModel}}"
IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter='Project.Script.AstScriptProjectViewModel'}"
在Silverlight中,x:Type不可用,我如何才能做到这一点

谢谢


-Craig

我最终解决了这个问题,将转换器参数更改为使用字符串,并将其转换为转换器中的类型。例如,我的绑定现在如下所示:

IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter={x:Type Script:AstScriptProjectViewModel}}"
IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter='Project.Script.AstScriptProjectViewModel'}"
在转换器中,我使用GetType将参数字符串转换为类型:

var typeString = parameter as string;
if (!string.IsNullOrWhiteSpace(typeString))
{
    type = Type.GetType(typeString);
}
据我所知,x:Type不能在Silverlight中用作静态值