WPF绑定到代理



我有许多集合类,它们实现了自己的自定义更新通知。将这些通知转换为代理类中的INotifyCollectionChanged实现应该非常容易。

CCD_ 2已经得到处理;这个问题只是关于集合代理。

所以,我正在寻找一种创建代理的方法,它相对容易从XAML中使用。子集合尤其如此。自定义集合类是库的一部分,不能修改(也不能从中派生(。也不可能用INotifyCollectionChanged兼容的等价物替换集合类型,因为数据更新代码超出了我的控制范围。

我更喜欢使用SL的解决方案,但这不是一个严格的要求。

到目前为止,我相信以下方法是可行的:

  • 定义为添加Proxy属性的集合类注册的TypeDescriptionProvider。这允许绑定路径点入代理。从XAML的角度来看,这个解决方案似乎是最简单的,但与SL不兼容
  • 定义一个创建代理的值转换器。这将与XAML方面的更多工作一起工作。它应该适用于SL。但是,如果一条路径上需要多个值转换,则可能需要"中间"视觉元素来保存值转换结果

我研究了ObjectDataProvider,但我认为它不能在这种情况下使用(代理创建方法必须是容器中对象类型的通用方法(。

关于这两种方法中哪一种更好,或者任何其他方法,有什么建议吗?

Paul Stovell创建了一个可编辑的集合适配器,它本身可能无法满足您的需求,但它应该为您创建合适的适配器/代理提供一个良好的起点。

http://www.paulstovell.com/editable-collection-adapter

我决定开发一个类型转换器,它也是MarkupExtension,正如这篇博客文章所描述的那样。

Silverlight目前不支持MarkupExtension,但它将在v5中提供。

相关内容

  • 没有找到相关文章

最新更新