C # WPF DataGrid Group представление связанных таблиц - PullRequest
1 голос
/ 22 апреля 2019

Мои данные расположены в двух связанных таблицах (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, или как Объекты пользовательского класса или Объекты с сеткой (люди могут быть списком объектов класса Person внутри объекта Family). Но я не уверен, какой вариант лучше.

Худшим вариантом (я думаю) является создание одной таблицы данных, содержащей объединенные таблицы, например 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?

...