2014-07-10 35 views
0

嗨,我试图创造Type类型的附加属性的样子:如何创建'Type'类型的附属属性?

public static Type GetTargetType(DependencyObject obj) 
    { 
     return (Type)obj.GetValue(TargetTypeProperty); 
    } 

    public static void SetTargetType(DependencyObject obj, Type value) 
    { 
     obj.SetValue(TargetTypeProperty, value); 
    } 


    public static readonly DependencyProperty TargetTypeProperty = 
     DependencyProperty.RegisterAttached("TargetType", typeof(Type), typeof(MyHelper), new PropertyMetadata(null, OnTargetPropertyChanged)); 

    private static void OnTargetPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
    { 
     // and here i want to use this type. 
    } 

,并在XAML代码:

// ... 
    <myControl MyHelpeers:MyHelper.TargetType="{x:Type local:myclass}"/> 
//... 

我用Google搜索这个我找到一种方法来创建类型格式的字符串。但我不喜欢那种方式。 请帮助我。 谢谢。

+0

出于好奇,有什么应用 - 你为什么要这么做? – user2588666

+1

你的问题到底是什么?你有一个Type类型的附加属性,那么你为什么要从'string' *创建'Type'呢?只需直接使用'Type'实例即可。 – Sheridan

+0

@ user2588666,这样做有很多原因。我使用'Type'类型的附加属性来使我的拖放功能可以通过使用附加属性类型安全的访问。 – Sheridan

回答

1

该值是事件参数,即NewValue,只是将其转换为Type

var type = (Type)e.NewValue;