如何获取ItemsSource绑定中的当前“项目”

时间:2013-09-25 12:36:27

标签: c# wpf xaml data-binding itemssource

我有一个具有一个依赖项属性的用户控件。在我的窗口中,我有一个对象列表,我正在创建一个由我的用户控件组成的统一网格。我将ItemsSource设置为我的对象列表,但我需要将每个相应的对象传递给用户控件。请参阅下面的代码 - 我需要将Participant对象传递给LadderControl。

<ItemsControl Grid.Row="2" Name="Participants" ItemsSource="{Binding Path=MyEvent.Participants}">

    // more code here, irrelevant

    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ladder:LadderControl Participant="CURRENT_ITEM_IN_PARTICIPANTS_LIST"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

有没有办法可以做到这一点?我应该考虑使用不同的模式吗?

由于

3 个答案:

答案 0 :(得分:4)

只需执行以下操作,因为参与者是每个项目的上下文

<ladder:LadderControl Participant="{Binding}"/>

答案 1 :(得分:1)

您只需访问DataContext中的LadderControl媒体资源即可访问当前参与者。

不需要单独的依赖属性。

  class LadderControl 
  {
       ...
       public IParticipant Participant 
       {
            get{ return DataContext as IParticipant; } 
       }
       ...

答案 2 :(得分:0)

一种解决方案就是:

        <ladder:LadderControl Participant="{Binding Path=.}"/>

{Binding Path=.}应该绑定到ItemsSource列表中的当前元素。