2010-12-09 38 views
0

我正在四處尋找諸如ObservableCollection<T>之類的東西,只要集合中的項目屬性發生更改,也會引發事件。我遇到了BindingList<T>,但很遺憾得知它在Silverlight中不可用。BindingList在Silverlight中等效嗎?想要觀察收集元素中的更改

我知道我可以很容易地構建這個,通過繼承ObservableCollection<T>並訂閱項目的PropertyChanged事件添加(和取消訂閱,因爲他們被刪除,當然)。然而,在我這樣做之前,我想確保我沒有可以使用的東西。

回答

1

執行此操作的WPF方法是讓放入ObservableCollection的對象從DependencyObject繼承,並使用DependencyProperties代替舊式屬性和PropertyChanged事件。這可能意味着你必須創建一個實現這個東西的包裝器對象。這將使UI中的綁定到您的集合中的對象自動更新。

另一方面,如果您沒有進行數據綁定,而只是想要一種方法來獲取事件以在代碼中的某個對象的任何屬性發生更改時觸發,則可能需要創建你自己的收藏品來做到這一點。

http://msdn.microsoft.com/en-us/library/ms752914.aspx對DependencyProperties和實現示例有很好的解釋。

相關問題