我有以下数据结构
class Car
{
int CarID;
string CarModel;
string CarColor;
string CarAge;
}
class Person
{
int ID;
string FirstName;
string Surname;
List<Car> Cars;
}
我将人们存储在一个可观察的集合中 -
ObservableCollection<Person> People;
我需要在像这个模型的DataGrid中显示它们 -
如您所见,一个人可以拥有一辆或多辆汽车,当他们拥有多辆汽车时,我想在同一“行”中显示多辆汽车的详细信息。
WPF可以实现吗?如果是这样,我将如何设置绑定?
答案 0 :(得分: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>