转发ItemsSource的最佳做法

时间:2010-03-01 16:45:53

标签: wpf binding dependency-properties

我有一个UserControl,其中包含ListViewListView具有与UserControl不同的数据上下文(未公开此数据上下文)。如果有人消耗我的控制权,我希望他们能够(间接地)绑定到ListView的{​​{1}}依赖属性。它应该感觉就像用户绑定到典型的ItemsSource

我不确定最好的方法是什么。看看ItemsSource ItemsControl属性如何在Reflector中工作,显示出一些逻辑似乎比简单转发所需要的更多。

我目前最好的想法是将一个集合作为外部控件的依赖属性公开,并在更新时更新ItemsSource的{​​{1}}。但是我不确定这个集合应该是什么类型(例如我应该要求ListView),或者如果有任何问题我应该注意。

非常感谢任何建议或意见。

感谢。

1 个答案:

答案 0 :(得分:4)

使用AddOwner将UserControl添加为ItemsControl.ItemsSourceProperty的所有者。在新属性元数据中,为属性更改回调,设置ListView的ItemsSource。