2013-09-25 100 views
5

Tôi có một điều khiển người dùng có một thuộc tính phụ thuộc. Trong cửa sổ của tôi, tôi có một danh sách các đối tượng, và tôi đang tạo một lưới đồng nhất bao gồm điều khiển người dùng của tôi. Tôi đang thiết lập ItemsSource vào danh sách các đối tượng của mình, nhưng tôi cần phải chuyển từng đối tượng tương ứng cho điều khiển người dùng. Vui lòng xem đoạn mã dưới đây - Tôi cần chuyển đối tượng Participant đến LadderControl.Cách lấy 'mục' hiện tại trong một liên kết 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> 

Có cách nào tôi có thể thực hiện việc này không? Tôi có nên suy nghĩ về việc sử dụng một mô hình khác không?

Cảm ơn

Trả lời

3

Chỉ cần làm dưới đây, như các bên tham gia là bối cảnh của từng hạng mục

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

Tôi nghĩ rằng đây là giải pháp tốt nhất vì LadderControl di động hơn. Cảm ơn. – Sherlock

1

Bạn có thể dễ dàng truy cập vào DataContext về tài sản trong LadderControl để truy cập tham gia currrent.

Không cần thiết cho thuộc tính phụ thuộc riêng biệt.

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

Một giải pháp là chỉ cần làm:

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

{Binding Path=.} nên liên kết với các yếu tố hiện trong danh sách ItemsSource.