我有一个ItemsCountrol,其ItemsSource属性绑定到ObservableCollection。我有一个显示此类型的usercontrol(TeamUserControl)。我创建了一个datatemplate,为itemssource集合中的每个customtype项加载此usercontrol。此时,我在TeamUserControl中创建的任何Binding语句都可以通过路径{Binding Path = TeamOwner}直接引用Team属性并工作。有没有办法绑定对usercontrol表示的ItemsSource项的引用?例如,在TeamUserControl中创建Team类型的dependancy属性,并将其绑定到ItemsSource中项目的实例。
<ItemsControl Name="ItemCtrl" Grid.Row="0" ItemsSource="{Binding Path=League.Teams}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<mycontrols:TeamUserControl AttachedTeam="{Binding ???}" TeamOwnerName="{Binding Path=TeamOwner}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
在此示例中,窗口表示类“League”,其具有以下属性: ObservableCollection团队。并且有一个类“Team”,它具有属性:TeamOwner。 TeamUserControl有两个依赖属性:Team类型的AttachedTeam和String类型的TeamOwnerName。
我包含了团队所有者属性引用,以显示每个用户控件都有一个Team实例。我只是不确定如何引用它。
答案 0 :(得分:4)
据我了解你,你应该写
<mycontrols:TeamUserControl AttachedTeam="{Binding}" TeamOwnerName="{Binding Path=TeamOwner}"/>
{Binding}
语句将绑定到ItemsSource中的当前项,其中T
类型是ObservableCollection<T> League.Teams
使用的类型。
我还建议您阅读有关ItemsControl的MSDN文章,并查看Binding
以了解自己,您可以绑定的内容。