Предположим, у меня есть пользовательский элемент управления, который привязан к виртуальной машине. Эта виртуальная машина имеет свойство для списка MyList.Как получить контрольный родительский DataContext для привязки элементов к элементу?
Внутри пользовательского элемента управления у меня есть ComboBox, я хочу, чтобы установить следующий вид 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>
, но он не работает.
Как решить эту проблему?
Почему вы пытаетесь сделать привязку Element to Element здесь? Разве вы не пытаетесь связать источник этого ComboBox с MyList на вашем ViewModel? Если это так, вы должны просто сделать это: ItemsSource = "{Binding MyList}" Возможно, я не понимаю, что вы подразумеваете под «родителем», можете ли вы показать больше кода? – JSprang