2013-09-25 17 views
5

Ich habe ein Benutzersteuerelement mit einer Abhängigkeitseigenschaft. In meinem Fenster habe ich eine Liste von Objekten, und ich erstelle ein einheitliches Raster, das aus meiner Benutzerkontrolle besteht. Ich setze die ItemsSource auf meine Liste von Objekten, aber ich muss jedes entsprechende Objekt an das Benutzersteuerelement übergeben. Bitte beachten Sie den folgenden Code - Ich muss das Teilnehmerobjekt an das LadderControl übergeben.So erhalten Sie den aktuellen 'Artikel' in einer ItemsSource-Bindung

<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> 

Gibt es eine Möglichkeit, das kann ich tun? Sollte ich darüber nachdenken, ein anderes Muster zu verwenden?

Dank

Antwort

3

tun Nur die unten, wie die Teilnehmer der Kontext der einzelnen Elemente ist

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

Ich denke, das ist die beste Lösung, da die LadderControl portabler ist. Vielen Dank. – Sherlock

1

Sie einfach den DataContext Immobilien in LadderControl den currrent Teilnehmer für den Zugriff auf zugreifen können.

Es ist keine separate Abhängigkeitseigenschaft erforderlich.

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

Eine Lösung ist einfach zu tun:

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

{Binding Path=.} auf das aktuelle Element in der ItemsSource Liste binden sollte.

Verwandte Themen