我有一个具有一个依赖项属性的用户控件。在我的窗口中,我有一个对象列表,我正在创建一个由我的用户控件组成的统一网格。我将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>
有没有办法可以做到这一点?我应该考虑使用不同的模式吗?
由于
答案 0 :(得分:4)
只需执行以下操作,因为参与者是每个项目的上下文
<ladder:LadderControl Participant="{Binding}"/>
答案 1 :(得分:1)
您只需访问DataContext
中的LadderControl
媒体资源即可访问当前参与者。
不需要单独的依赖属性。
class LadderControl
{
...
public IParticipant Participant
{
get{ return DataContext as IParticipant; }
}
...
答案 2 :(得分:0)
一种解决方案就是:
<ladder:LadderControl Participant="{Binding Path=.}"/>
{Binding Path=.}
应该绑定到ItemsSource
列表中的当前元素。