Silverlight中的相对绑定

时间:2011-10-22 14:50:07

标签: silverlight xaml

我的应用程序中有一个ItemsControl。与ItemsControl关联的页面绑定到视图模型。视图模型包括两个属性:People和Options。对于每个人,我想在ComboBox中显示选项列表。选项在我的视图模型中定义。我的代码如下所示:

<ItemsControl ItemsSource="{Binding Path=People}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <ComboBox ItemsSource="Options" DisplayMemberPath="FullName" />
      </StackPanel>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

但是,因为每个Item代表一个Person,所以ComboBox正在查看Person对象中名为“Options”的属性。如何引用ComboBox的视图模型而不是Person?

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用以下技术

<ComboBox ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.Options}" DisplayMemberPath="FullName" />

假设您的LayoutRoot的DataContext是View Model。如果没有,您可以为ItemsControl指定名称并将其用于ElementName。