Как разрешить пользователям выбирать собственную группировку для элемента управления .NET TreeView - PullRequest
1 голос
/ 03 июня 2010

Я использую древовидную структуру для отображения проектов, задач, записей времени и людей, работающих над проектом. Я хотел бы позволить пользователю определить пользовательскую группировку (т. Е. Project->Task->Time Entries или Project->Date (of time entry)->Task->TimeEntry).

Соответствующими группами будут Project, Task, Entry Time и Person с некоторыми метаданными из них. Я хочу иметь какой-то модульный способ, позволяющий пользователю указать, как он хотел бы отображать информацию.

Кто-нибудь знает хороший метод, с помощью которого это можно сделать? В настоящее время я жестко запрограммировал дисплей, который выглядит следующим образом:

Project  
  Task
    Time Entry
Next Project
...

Моя мысль состоит в том, чтобы сделать что-то наподобие методов записи для отображения каждого типа и каким-то образом позволить пользователю выбрать, какой порядок будет группировать отображение.

Пожалуйста, дайте мне знать, если я не достаточно ясен.

1 Ответ

1 голос
/ 03 июня 2010

Вот один из способов:

Создать функцию для загрузки узла дерева. Передайте в качестве параметра типы групп в иерархическом порядке: например, «Проект», «Задача», «Ввод времени». Параметр может быть массивом или другим типом.

В функции загрузите узлы с элементами в верхней части иерархии: сначала проект, в этом примере. Для каждого проекта, который вы добавляете в коллекцию узлов, рекурсивно вызывайте функцию со всеми, кроме верхнего элемента, в качестве параметра - В этом примере задание и ввод времени, затем ввод времени только на третьем уровне рекурсии.

...