代码之家  ›  专栏  ›  技术社区  ›  Corey Sunwold

在另一个DataGrid的RowDetailsTemplate中使用DataGrid

  •  3
  • Corey Sunwold  · 技术社区  · 15 年前

    我想在另一个数据报的rowdetailtemplate中使用一个数据报。此内部数据报的列应绑定到外部数据报中当前对象的属性。例如,如果外部数据报按名字和姓氏显示所有联系人,如果我选择一行,我应该能够看到另一个数据报,其中包含与该联系人关联的所有电话号码。我最感兴趣的是内部数据报的数据如何绑定到外部数据报的数据。以下是到目前为止我要开始的一些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 回复  |  直到 12 年前
        1
  •  1
  •   bluish dmajkic    12 年前

    这条线索的最后一个答案帮助了我: How is access inner Datagrid in Silverlight? .

    在我设置的内部数据报上 ItemsSource="{Binding Phones}" 并移除 DataContext .

        2
  •  -3
  •   bluish dmajkic    12 年前

    请改用rowdetailTemplate: DataGrid.RowDetailsTemplate Property .

    你可以绑定到 DetailsVisibilityChanged 活动,你将通过 DataContext 单击的行。从中可以检索详细数据并更新 RowDetailsTemplate 因此。