我想在另一个Datagrid的RowDetailsTempalte中使用DataGrid。此内部Datagrid的列应绑定到外部Datagrid中当前对象的属性。例如,如果外部Datagrid按名字和姓氏显示所有联系人,如果我选择一行,我应该能够看到另一个包含与该联系人关联的所有电话号码的Datagrid。我最感兴趣的是内部Datagrid的数据如何绑定到外部Datagrid的数据。这是我到目前为止开始的一些XAML:
<data:DataGrid MinHeight="700" x:Name="contacts">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"></data:DataGridTextColumn>
<data:DataGridTextColumn Header="Last Name" Binding="{Binding LastName}"></data:DataGridTextColumn>
</data:DataGrid.Columns>
<data:DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Background="Black">
<StackPanel Background="White" Margin="16">
<data:DataGrid DataContext="Contact.Phones">
</data:DataGrid>
</StackPanel>
</StackPanel>
</DataTemplate>
</data:DataGrid.RowDetailsTemplate>
</data:DataGrid>
答案 0 :(得分:1)
这个帖子的最后一个答案帮助了我:How is access inner Datagrid in Silverlight?。
在内部DataGrid上,我设置了ItemsSource="{Binding Phones}"
并删除了DataContext
。
答案 1 :(得分:-3)
改为使用RowDetailsTemplate:DataGrid.RowDetailsTemplate Property。
您可以绑定到DetailsVisibilityChanged
事件,这将传递您单击的行的DataContext
。从那里,您可以检索详细信息数据并相应地更新RowDetailsTemplate
。