2011-11-28 115 views
0

我有一个自定义控件,其中包含一个数据网格,我希望能够将一个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

请提供设置绑定的代码/ XAML。如果它是一个真正的自定义控件,请将ControlTemplate放在此处。 –

回答

1

依赖项属性的包装器属性应该与依赖项属性具有相同的名称,即'ItemsSource'而不是'ItemsSourceCollection'。

这是一个XAML规则。检查出this article。它是为WPF编写的,但对于Silverlight也是如此。

同样,按照惯例,包装器属性的名称必须与选择的名称相同,并作为注册该属性的注册调用的第一个参数给出。如果您的财产不遵守约定,这并不一定会禁用所有可能的用途,但您将遇到几个值得注意的问题

+0

这实际上是我遇到的问题,我昨晚修复了这个错误,但留下了问题,看看有没有人知道为什么。现在我有一个问题,该集合没有得到填补... –

+0

@BarryFranklin我已更新帖子,包括证明链接。 –

相关问题