Supposons que je dispose d'un contrôle utilisateur sur lequel datacontext est lié à une machine virtuelle. Cette VM a une propriété pour une liste MyList.Comment obtenir le contrôle parent DataContext pour la liaison de données d'élément à élément?
Dans ce contrôle utilisateur J'ai un ComboBox, je veux mettre en suivant genre de 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>
mais il ne fonctionne pas.
Comment résoudre ce problème?
Pourquoi essayez-vous de faire la liaison d'élément à élément ici? N'essayez-vous pas de lier la source de ce ComboBox à MyList sur votre ViewModel? Si oui, vous devriez pouvoir faire ceci: ItemsSource = "{Binding MyList}" Peut-être que je ne comprends pas ce que vous entendez par "parent", pourriez-vous montrer plus de code? – JSprang