相关表的C#WPF DataGrid组视图

时间:2019-04-22 16:37:15

标签: c# wpf grouping wpfdatagrid

我将数据安排在两个相关的表(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中进行绑定和分组?

0 个答案:

没有答案