Silverlight中的相对绑定



我有一个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引用视图模型?

谢谢!

您可以使用以下技术

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

假设你的LayoutRoot的DataContext是视图模型。如果没有,你可以给你的ItemsControl一个名字,并使用它的ElementName。

最新更新