Silverlight 4.0 如何获取元素到元素数据绑定的控件父DataContext?
假设我有一个用户控件,其中datacontext绑定到VM。此VM具有列表MyList的属性 在这个用户控件中,我有一个组合框,我想设置以下类型的xamlSilverlight 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
<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”是什么意思,您能显示更多的代码吗?