2014-07-10 37 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;