C# 如何通过XAML传递对象的类型
我正在尝试在XAML中获取类型对象C# 如何通过XAML传递对象的类型,c#,silverlight,xaml,C#,Silverlight,Xaml,我正在尝试在XAML中获取类型对象 x:Type={...} 但我意识到Silverlight不支持它。我试图在以下问题中使用它(在EnumerationExtension类中): 如何在XAML中传递该类型?C您可以(从Silverlight 5开始提供) 或者您可以您可以(从Silverlight 5开始提供) 或者您可以如果是SL 5,则可定制 elseBinding,返回value.GetType() 例如: public class TypeExtension : IMarkup
x:Type={...}
但我意识到Silverlight不支持它。我试图在以下问题中使用它(在EnumerationExtension
类中):
如何在XAML中传递该类型?C您可以(从Silverlight 5开始提供)
或者您可以您可以(从Silverlight 5开始提供)
或者您可以如果是SL 5,则可定制else
Binding
,返回value.GetType()
例如:
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;
}
}
如果是SL 5,则自定义else
Binding
,返回value.GetType()
例如:
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;
}
}
我用的是SL5。我有一个疑问,所以我是否创建了一个MyType自定义标记扩展并将object.GetType的PrivideValue设置为正确?我使用的是SL5。我有一个疑问,那么我是否创建了MyType自定义标记扩展并将object.GetType的PrivideValue设置为正确?