我有許多集合類實現他們自己的自定義更新通知。將這些通知轉換爲代理類中的INotifyCollectionChanged
實現應該非常容易。WPF綁定到代理
INotifyPropertyChanged
已經被照顧;這個問題只是關於收集代理。
所以,我正在尋找的是一種創建代理的方式,它比較容易在XAML中使用。子集合尤其如此。自定義集合類是不能修改(或派生自)的庫的一部分。也不可能用INotifyCollectionChanged
兼容的等價物替換集合類型,因爲數據更新代碼不在我的控制範圍之內。
我更喜歡與SL一起工作的解決方案,但這不是一個嚴格的要求。
到目前爲止,我相信下面的方法是可行的:
- 定義,增加了一個
Proxy
屬性集合類註冊的TypeDescriptionProvider
。這允許綁定路徑進入代理。從XAML的角度來看,這個解決方案似乎最簡單,但不是SL兼容的。 - 定義一個創建代理的值轉換器。這將在XAML方面做更多的工作。它應該適用於SL。但是,如果路徑上需要多個值轉換,則可能需要「中間」視覺元素來保存值轉換器結果。
我看着ObjectDataProvider
,但我不認爲它可以在這種情況下使用(代理創建方法必須對容器中的對象類型通用)。
有關這兩種方法哪一種更好的建議或任何其他方法?
link is dead =( – Maslow
@Maslow:它在[存檔]中(https://web.archive.org/web/20100424070706/http://blog.wpfwonderland.com/2010/04/15/simplify - 您的結合轉換器上帶有一個定製的標記擴展/)。 –