2013-09-25 4 views
5

में वर्तमान 'आइटम' कैसे प्राप्त करें मेरे पास एक उपयोगकर्ता नियंत्रण है जिसमें एक निर्भरता संपत्ति है। मेरी खिड़की में मेरे पास वस्तुओं की एक सूची है, और मैं एक समान ग्रिड बना रहा हूं जिसमें मेरा उपयोगकर्ता नियंत्रण शामिल है। मैं आइटम्ससोर्स को अपनी ऑब्जेक्ट्स की सूची में सेट कर रहा हूं, लेकिन मुझे प्रत्येक संबंधित ऑब्जेक्ट को उपयोगकर्ता नियंत्रण में पास करने की आवश्यकता है। कृपया नीचे दिया गया कोड देखें - मुझे प्रतिभागी वस्तु में लेडरकंट्रोल में पास करने की आवश्यकता है।आइटम्ससोर्स बाध्यकारी

<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

आप बस currrent प्रतिभागी का उपयोग करने की LadderControl में DataContext संपत्ति का उपयोग कर सकते के संदर्भ है।

एक अलग निर्भरता संपत्ति की कोई आवश्यकता नहीं है।

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

{Binding Path=.}ItemsSource सूची में वर्तमान तत्व के लिए बाध्य करना चाहिए:

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

एक समाधान बस करना है।

संबंधित मुद्दे