我将数据安排在两个相关的表(SQLite)中。假设表格是“家庭”和“人”。表结构如下所示。
CREATE TABLE families (
FamilyID INTEGER PRIMARY KEY AUTOINCREMENT,
FamilyName VARCHAR,
FamilyPower INTEGER,
FamilyStatus Boolean
);
CREATE TABLE people (
PersonID INTEGER PRIMARY KEY AUTOINCREMENT,
FamilyID INTEGER REFERENCES families (FamilyID),
Name Varchar,
Age INTEGER
);
我想在分组的DataGrid中显示该表中的数据。我可以将这些数据安排为DataSet或自定义类的Objects或netsted Objects(people可以是Family对象内部的Person类的对象列表)。但是我不确定哪个选项是最好的。
最糟糕的选择(我认为)是在做一个DataTable,其中包含诸如SELECT * FROM families LEFT JOIN people ON families.FamilyID = people.PersonID
之类的联接表。但是我可能错了,这实际上是实现我想要的最好的选择。
我想要的是显示带有组头的分组数据,该组头包含有关家族及其所有成员的完整信息,作为数据行。因此如下所示:
PersonID | Name | Age |
FamilyID: 1 Name: Stark Power: 10 Members: 3 Status: [x] <-- This is checkbox
1 | Eddard | 60 |
2 | Robb | 30 |
3 | Arya | 15 |
FamilyID: 2 Name: Lannister Power: 15 Members: 4 Status: [x]
4 | Cersei | 30 |
5 | Tyrion | 35 |
6 | Jaimie | 30 |
7 | Tywin | 30 |
FamilyID: 1 Name: Targaryen Power: 10 Members: 1 Status: [ ]
1 | Daenerys | 30 |
是否有可能实现这一目标?请帮助我选择最佳的数据存储方式,并解决如何在DataGrid中进行绑定和分组?