我正在尝试在 XAML 中获取类型对象。
x:Type={...}
但我意识到 Silverlight 不支持它。我试图在以下问题中使用它(在EnumerationExtension
课堂上):
我能做些什么来传递 XAML 中的类型?C
我正在尝试在 XAML 中获取类型对象。
x:Type={...}
但我意识到 Silverlight 不支持它。我试图在以下问题中使用它(在EnumerationExtension
课堂上):
我能做些什么来传递 XAML 中的类型?C
if SL 5 then custom MarkupExtension
else Binding
with Converter
that returns value.GetType()
ME example:
public class TypeExtension : IMarkupExtension<Type>
{
public string TypeName { get; set; }
public TypeExtension() { }
public TypeExtension(string typeName)
: this()
{
if (typeName == null) throw new ArgumentNullException("typeName");
TypeName = typeName;
}
public Type ProvideValue(IServiceProvider serviceProvider)
{
var typeResolver = (IXamlTypeResolver)serviceProvider.GetService(typeof(IXamlTypeResolver));
var type = typeResolver.Resolve(TypeName);
return type;
}
}
Note that there is no support for the constructors in SL 5, so you need to use the property names in XAML:
{me:Type TypeName=local:SomeClass}