2012-05-17 24 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上的元素的类型,因此它将在您的手中正确执行。