我有许多集合类,它们实现了自己的更新通知。将这些通知转换成代理类中的
因此,我正在寻找一种相对容易从 XAML 中使用的方法来创建代理类,特别是对于子集合。这对于一个不能修改(也不能派生)的库中的自定义集合类来说是非常重要的。由于数据更新代码不在我的掌控之下,也无法用兼容于
我希望能够提供一个适用于 Silverlight 的解决方案,但这并非严格要求。
到目前为止,我认为以下方法是可行的:
对于以上两种方法哪种更好或者是否有其他方法的建议?
INotifyCollectionChanged
实现应该很容易。
INotifyPropertyChanged
已经被处理好了;这个问题只是关于集合代理类的。因此,我正在寻找一种相对容易从 XAML 中使用的方法来创建代理类,特别是对于子集合。这对于一个不能修改(也不能派生)的库中的自定义集合类来说是非常重要的。由于数据更新代码不在我的掌控之下,也无法用兼容于
INotifyCollectionChanged
的等效类型替换集合类型。我希望能够提供一个适用于 Silverlight 的解决方案,但这并非严格要求。
到目前为止,我认为以下方法是可行的:
- 定义一个
TypeDescriptionProvider
,注册到集合类以添加一个Proxy
属性。这样绑定路径就可以进入代理了。从 XAML 的角度来看,这个解决方案似乎最简单,但不兼容 SL。 - 定义一个值转换器来创建代理。这需要从 XAML 端进行更多的工作。对于 SL 来说应该能够使用。然而,如果在路径上需要进行多次值转换,则可能需要“中间”可视元素来保存值转换器的结果。
ObjectDataProvider
,但我认为它不能在这种情况下使用(代理创建方法必须是容器中对象类型的通用方法)。对于以上两种方法哪种更好或者是否有其他方法的建议?