我有一个自定义控件,其中包含一个数据网格,我希望能够将ItemsSource绑定到该数据网格,但我似乎无法让它工作。我有一个ObservableObjectCollection设置为依赖属性,但是当我尝试运行它时,我收到错误“无法将绑定转换为ObservableObjectCollection”。
Public Shared ReadOnly ItemsSourceProperty As DependencyProperty = DependencyProperty.Register("ItemsSource", GetType(ObservableObjectCollection), GetType(HomePageControl), New PropertyMetadata(New ObservableObjectCollection()))
Public Property ItemsSourceCollection As ObservableObjectCollection
Get
Return DirectCast(Me.GetValue(HomePageControl.ItemsSourceProperty), ObservableObjectCollection)
End Get
Set(value As ObservableObjectCollection)
Me.SetValue(HomePageControl.ItemsSourceProperty, value)
End Set
End Property
我是否定义了依赖属性错误?我看到很多类似于这个问题的答案,他们都说要使用依赖属性。是什么赋予了?我正在使用ObservableObjectCollection,因为我不知道将哪种类型的对象绑定到控件。
答案 0 :(得分:1)
依赖项属性的包装器属性应与依赖项属性同名,即“ItemsSource”而不是“ItemsSourceCollection”。
这是XAML规则。查看this article。它是为WPF编写的,但Silverlight也是如此。
同样,按照惯例,包装器属性的名称必须与选择的名称相同,并作为注册该属性的Register调用的第一个参数给出。如果您的财产不符合惯例,这不一定会禁用所有可能的用途,但您会遇到几个值得注意的问题