2011-11-28 113 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我已更新帖子,包括證明鏈接。 –

相關問題