2010-03-01 53 views
1

我有一个UserControl,其中包含 - ListViewListView具有与UserControl不同的数据上下文(此数据上下文未公开)。如果有人消费我的控制权,我希望他们能够(间接)绑定到ListView的依赖项属性。它应该真的感觉像用户绑定到一个典型的ItemsSource转发项目的最佳做法来源

我不确定最好的处理方式是什么。看看ItemsControlItemsSource属性在Reflector中的工作情况,显示出一些似乎比简单转发所需要的更复杂的逻辑。

我目前最好的想法是公开一个集合作为外部控件的依赖属性,当它更新时,更新ListViewItemsSource。但我不确定这个集合应该是什么类型(例如,我需要一个ObservableCollection<T>),或者如果有任何我应该注意的陷阱。

任何建议或意见将不胜感激。

谢谢。

回答

4

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

+0

正是我需要的,谢谢! – 2010-03-01 17:20:34

相关问题