2011-10-22 30 views
1

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

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

然而,因为每个项目代表的是人物,组合框寻找一个名为“选项”属性中的Person对象。如何从ComboBox而不是Person引用视图模型?

谢谢!

回答

2

您可以使用以下方法

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

假设你LayoutRoot的DataContext的是视图模型。如果不是的话,你可以给你的ItemsControl一个名字,并将它用于ElementName。