多行数据网格来处理集合中的集合?

Jim*_*_CS 2 c# wpf datagrid expression-blend

我有以下数据结构

class Car
{
    int CarID;
    string CarModel;
    string CarColor;
    string CarAge;
}

class Person
{
    int ID;
    string FirstName;
    string Surname;
    List<Car> Cars;
}
Run Code Online (Sandbox Code Playgroud)

我将人们存储在一个可观察的集合中 -

ObservableCollection<Person> People;
Run Code Online (Sandbox Code Playgroud)

我需要在像这个模型的DataGrid中显示它们 - 在此输入图像描述

如你所见,一个人可以拥有一辆或多辆汽车,当他们拥有多辆汽车时,我想在同一"行"中显示多辆汽车的详细信息.

这可能与WPF有关吗?如果是这样,我将如何设置绑定?

bli*_*eis 6

请问RowDetailTemplate你想要做什么?您可以使用它以您想要的方式显示childrows.只是谷歌为它看到更多的例子

<DataGrid ItemsSource="{Binding People}">
  <DataGrid.Columns>
     <DataGridTextColumn Header="ID" Binding="{Binding ID}"/>
     <DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"/>
     <DataGridTextColumn Header="Last Name" Binding="{Binding Surname}"/>
   </DataGrid.Columns>
   <DataGrid.RowDetailsTemplate>
      <DataTemplate>
          <DataGrid ItemsSource="{Binding Cars}">
           <DataGridTextColumn Binding="{Binding Path=CarModel}" Header="Model" />
           <DataGridTextColumn Binding="{Binding Path=CarAge}" Header="Age" />
          <DataGridTextColumn Binding="{Binding Path=CarColor}" Header="Color" />
         </DataGrid>
        </DataTemplate>
     </DataGrid.RowDetailsTemplate>
    </DataGrid>
Run Code Online (Sandbox Code Playgroud)