2013-09-25 5 views
5

У меня есть пользовательский элемент управления, который имеет одно свойство зависимости. В моем окне у меня есть список объектов, и я создаю единую сетку, состоящую из моего пользовательского элемента управления. Я устанавливаю ItemsSource в свой список объектов, но мне нужно передать каждый соответствующий объект в пользовательский элемент управления. Пожалуйста, ознакомьтесь с приведенным ниже кодом. Мне нужно передать объект участника в LadderControl.Как получить текущий «элемент» в привязке ItemsSource

<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

Просто сделайте ниже, поскольку Участник является контекст каждого элемента

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

Я думаю, что это лучшее решение, поскольку LadderControl более портативен. Благодарю. – Sherlock

1

Вы можете просто получить доступ к DataContext недвижимости в LadderControl для доступа к currrent участника.

Нет необходимости в отдельном свойстве зависимости.

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

Одним из решений является просто сделать:

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

{Binding Path=.} должен связываться с текущим элементом в ItemsSource списке.