У меня есть база данных Nhibernate, которая предоставляет данные в виде иерархического списка <>.У меня есть TreeView в моем графическом интерфейсе Windows Forms и Backgroundworker, который заполняет TreeView всеми корневыми узлами и их дочерними элементами (ничего более из-за исключения отложенной загрузки из NHibernate, но это нормально, потому что я ожидаю, что у пользователя будет много узлов в TreeView).
Процесс добавления корневых узлов и их дочерних элементов в TreeView работает довольно хорошо, но когда я щелкаю узел, чтобы развернуть его, все дочерние элементы должны быть загружены из базы данных и добавлены в TreeView.Узлы успешно запрашиваются из базы данных и сохраняются в списке буферов (когда щелкните узел, чтобы развернуть его).
После этого я попробовал несколько идей, таких как перестройка TreeView и переполнение его полностью, но с этим решением у меня возникла проблема, что все развернутые узлы свернуты, поэтому я попытался сохранить развернутый узел, и он работал.Но я не совсем доволен этим решением, у меня сложилось впечатление, что это можно сделать проще, потому что я не хочу повторно заполнять TreeView каждый раз, когда пользователь расширяет узел.
Как я могу перезагрузитьПотомки TreeNode из базы данных и отображают его в TreeView без повторного заполнения всего TreeView?