2012-05-17 21 views
1

我有一個附加屬性:屬性中的ownerType是什麼?

public static readonly DependencyProperty DataTableProperty = 
    DependencyProperty.RegisterAttached("DataTable", 
    typeof(MetadataTable), 
    typeof(TabControl), 
    new PropertyMetadata(DataTableChanged)); 

我這樣使用它,一切都建立正確:

<sdk:TabControl view:DataBrowserHelper.DataTable="{Binding Path=Table}" /> 

如果我改變屬性的ownerType爲另一種類型,一切都還是建立正確。我認爲ownerType決定了屬性可以連接的類型。所以我錯了?什麼是所有者類型?我怎樣才能限制屬性的使用(例如,使它只能附加到TabControl或DataGrid)?

回答

1

ownerType是擁有該屬性的類的類型。 例如,如果您在名爲MyClass的類中聲明瞭此屬性,則此DependencyProperty的ownerType將爲MyClass。

限制使用很複雜,因爲您的程序只會在RunTime中知道您在接口上附加到DP上的元素的類型,因此它將在您的手中正確執行。