6

我有一个具有一个依赖属性的用户控件。在我的窗口中,我有一个对象列表,我正在创建一个由我的用户控件组成的统一网格。我将 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>

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

谢谢

4

3 回答 3

4

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

<ladder:LadderControl Participant="{Binding}"/>
于 2013-09-25T12:38:47.973 回答
1

您可以简单地访问该DataContext属性LadderControl以访问当前参与者。

不需要单独的依赖属性。

  class LadderControl 
  {
       ...
       public IParticipant Participant 
       {
            get{ return DataContext as IParticipant; } 
       }
       ...
于 2013-09-25T12:39:02.437 回答
0

一种解决方案是简单地做:

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

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

于 2017-11-01T02:24:38.003 回答