在另一个Datagrid的RowDetailsTemplate中使用Datagrid

时间:2009-06-12 21:45:35

标签: silverlight data-binding datagrid toolkit

我想在另一个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>

2 个答案:

答案 0 :(得分:1)

这个帖子的最后一个答案帮助了我:How is access inner Datagrid in Silverlight?

在内部DataGrid上,我设置了ItemsSource="{Binding Phones}"并删除了DataContext

答案 1 :(得分:-3)

改为使用RowDetailsTemplate:DataGrid.RowDetailsTemplate Property

您可以绑定到DetailsVisibilityChanged事件,这将传递您单击的行的DataContext。从那里,您可以检索详细信息数据并相应地更新RowDetailsTemplate