Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过XAML传递对象的类型_C#_Silverlight_Xaml - Fatal编程技术网

C# 如何通过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

我正在尝试在XAML中获取类型对象

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设置为正确?