Как передать тип в качестве параметра конвертера в Silverlight? - PullRequest
0 голосов
/ 14 июня 2011

Допустим, у меня есть кнопка, свойство IsEnabled которой использует привязку, которая проверяет, имеет ли DataContext кнопки ожидаемый тип. Если DataContext соответствует типу, кнопка включена; в противном случае он отключен.

В WPF я могу сделать это следующим образом:

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

Как я могу сделать это в Silverlight, где x: Type недоступен?

Спасибо

-Craig

1 Ответ

2 голосов
/ 15 июня 2011

Я решил эту проблему, изменив параметр моего конвертера на строку, которую я конвертировал в тип в конвертере.Например, теперь моя привязка выглядит следующим образом:

IsEnabled="{Binding Converter={StaticResource isObjectOfTypeConverter}, ConverterParameter='Project.Script.AstScriptProjectViewModel'}"

В конвертере я использую GetType, чтобы превратить строку параметра в тип:

var typeString = parameter as string;
if (!string.IsNullOrWhiteSpace(typeString))
{
    type = Type.GetType(typeString);
}

Из того, что я могу сказать,x: Тип нельзя использовать в качестве статического значения в Silverlight.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...