Silverlight 4.0 如何获取元素到元素数据绑定的控件父DataContext?

Silverlight 4.0 如何获取元素到元素数据绑定的控件父DataContext?,silverlight-4.0,Silverlight 4.0,假设我有一个用户控件,其中datacontext绑定到VM。此VM具有列表MyList的属性 在这个用户控件中,我有一个组合框,我想设置以下类型的xaml <Grid x:Name="LayoutRoot" Background="White"> <StackPanel HorizontalAlignment="Stretch"> <sdk:DataGrid ItemsSource="{Binding Y

假设我有一个用户控件,其中datacontext绑定到VM。此VM具有列表MyList的属性

在这个用户控件中,我有一个组合框,我想设置以下类型的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>

但它不起作用


如何解决此问题?

您是否试图从UserControl内访问主VM?看看这个解决方案

您是否试图从UserControl中访问主VM?看看这个解决方案

这对我很有效。这是DataGrid中组合框的ItemSource:

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

这对我很有效。这是DataGrid中组合框的ItemSource:

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

为什么要在这里进行元素到元素的绑定?您不正试图将此组合框的源绑定到ViewModel上的MyList吗?如果是这样的话,您应该可以这样做:ItemsSource=“{Binding MyList}”也许我不理解您所说的“parent”是什么意思,您可以显示更多的代码吗?为什么您要在这里尝试进行元素到元素的绑定?您不正试图将此组合框的源绑定到ViewModel上的MyList吗?如果是这样,您应该可以这样做:ItemsSource=“{Binding MyList}”也许我不理解您所说的“parent”是什么意思,您能显示更多的代码吗?