我有一個Nhibernate數據庫,它提供數據作爲分層列表<>。我在我的Windows窗體GUI和Backgroundworker中有一個TreeView,它填充了所有根節點和它們的子節點的樹視圖(沒有更多因爲從NHibernate延遲加載異常,但這是好的,因爲我期望用戶將在TreeView中有很多節點)。如何通過Backgroundworker將節點添加到數據庫的TreeView中,並在擴展Windows Forms C#中的節點時重新加載子節點?
到根節點和他們的孩子添加到TreeView的過程中效果很好,但是當我點擊一個節點,以擴大它的孩子們的所有兒童都應從數據庫加載並添加到TreeView。節點從數據庫成功請求並存儲在緩衝區列表中(點擊節點展開時)。
之後,我嘗試了一些想法,如重建TreeView並完全重新填充,但使用此解決方案時,我得到了所有展開的節點都已摺疊的問題,因此我嘗試存儲已展開且工作的節點。但是我對這個解決方案並不滿意,我感覺它可以更容易完成,因爲我不想每次用戶擴展節點時重新填充TreeView。
如何從數據庫中重新加載TreeNode的子節點並將其顯示在TreeView中而無需重新填充整個TreeView?
延遲加載不是問題,因爲我從數據庫初始加載時得到根節點的子節點。 – Daraku 2011-06-09 08:39:32