2010-11-09 129 views
1

假设我有一个用户控件,其datacontext绑定到一个虚拟机。该虚拟机具有MyList列表的属性。如何获取控件父DataContext元素元素数据绑定?

这里面的用户控件我有一个组合框,我想设置以下类型的XAML

<Grid x:Name="LayoutRoot" Background="White"> 
      <StackPanel HorizontalAlignment="Stretch"> 
       <sdk:DataGrid ItemsSource="{Binding YourList}" IsReadOnly="True" AutoGenerateColumns="False" > 
        <sdk:DataGrid.Columns>      
         <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name}" /> 
         <!-- ...... --> 
         <sdk:DataGridTemplateColumn Header="User" > 
          <sdk:DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <ComboBox ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.MyList}" DisplayMemberPath="Value" SelectedValuePath="Key" SelectedValue="{Binding UserID}" ></ComboBox> 
           </DataTemplate> 
          </sdk:DataGridTemplateColumn.CellTemplate> 
         </sdk:DataGridTemplateColumn> 

        </sdk:DataGrid.Columns> 
       </sdk:DataGrid> 
      </StackPanel> 
    </Grid> 

,但它无法正常工作。

如何解决此问题?

+0

你为什么试图在这里做Element to Element绑定?你不只是试图将这个ComboBox的源码绑定到ViewModel上的MyList吗?如果是这样,你应该能够做到这一点:ItemsSource =“{Binding MyList}”也许我不明白你的意思是'父',你能显示更多的代码吗? – JSprang 2010-11-09 19:42:06

回答

1

这工作形成了我。这是DataGrid内的ComboBox的ItemSource:

 ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=sdk:DataGrid}, 
Path=DataContext.Teams}">