【发布时间】:2013-09-23 00:53:14
【问题描述】:
假设我有一个用户控制哪个数据上下文绑定到虚拟机。此 VM 具有列表 MyList 的属性。
在这个用户控件中我有一个 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>
但它不起作用。
如何解决这个问题?
【问题讨论】:
-
你为什么要在这里做元素到元素的绑定?您不是只是想将此 ComboBox 的源绑定到 ViewModel 上的 MyList 吗?如果是这样,您应该可以这样做: ItemsSource="{Binding MyList}" 也许我不明白您所说的“父级”是什么意思,您能显示更多代码吗?
标签: silverlight-4.0