Связывание элементов TreeView в Windows Forms с реальными данными - PullRequest
1 голос
/ 29 июня 2009

Итак, работая с C # и Windows Forms, у меня есть куча классов «Задачи». Каждый класс имеет List<Task>, так что они могут иметь любое количество детей (и у детей, очевидно, может быть больше детей ...)

Эти задачи хранятся в классе «Project» (очевидно, в List<Task>), который затем сериализуется в XML. У меня есть функция, чтобы выполнить все задания и поместить их в TreeView. Он работает так же, как и должен.

Но дело в том - если я выберу задачу из TreeView, как я найду ее из Project? Я подумал о каком-то внешнем ключе (который будет ключом TreeNode?), Но, поскольку я использую XML для сериализации, это невозможно.

Итак, что мне делать?

Ответы [ 3 ]

3 голосов
/ 29 июня 2009

Я бы поместил ссылку на объект «Задача» в член тега каждого TreeNode. Тогда становится очень легко привести тег к задаче и использовать задачу при обработке любого события дерева.

1 голос
/ 29 июня 2009

Каждый узел дерева имеет свойство FullPath (которое представляет путь от корня к узлу), вы можете создать словарь и заполнить его своими задачами, используя FullPath в качестве ключа. Затем при щелчке по узлу вы берете узел FullPath и извлекаете задачу из словаря.

1 голос
/ 29 июня 2009

Вы должны дать каждой Задаче уникальный ключ (сохранить их в Словаре), а затем установить это значение int для тега TreeNode.

...