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

时间:2011-06-13 23:45:20

标签: silverlight-4.0

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

在WPF中,我可以这样做:

IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter={x:Type Script:AstScriptProjectViewModel}}"

如何在Silverlight中执行此操作,其中x:Type不可用?

谢谢,

-Craig

1 个答案:

答案 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中用作静态值。