2009-12-19 53 views
3

我有一個treeview控件,它的子節點被映射到列表中的元素,當列表狀態中的元素髮生變化時,我需要更新相應的treeview節點,同樣,當用戶選擇一個treenode,我可以映射到列表中的元素,記錄映射的最佳方法是什麼?Winform中的TreeView節點映射

回答

3

如果是標準的WinForms TreeView,則可以在每個節點上使用Tag property來存儲對相應列表項的引用。

如果您還使用ListView,則每個ListViewItem也有一個Tag property,可用於引用相應的treenode。

使用TreeNodes和ListVIewItems的Tag屬性可讓您輕鬆實現它們之間的雙向同步。

這些標籤屬性是對象類型的,所以你可以實際存儲你需要的任何東西。在你的情況下,當用戶編輯一個ListViewItem時,你首先得到Tag屬性,將其轉換爲TreeNode對象並根據需要更新TreeNode的狀態。

當用戶編輯TreeNode項目時,相反的過程也適用。

[更新]

在用戶界面的樹控制和列表控制似乎齊頭並進的許多畫面。但是,在Windows窗體中,TreeView和ListView(或List)是完全獨立的控件,不一定需要一起使用。因此沒有建立這些控件同步的方法。標籤屬性和/或事件是這些控件之間同步最常用的方法。

+0

這就是我目前使用的,我只是想知道這是否是最好的方法。 – Benny 2009-12-19 02:48:35

+0

取決於「最佳方式」是什麼意思?這可能是最靈活的方式,因爲您可以訪問直接的TreeNode/ListViewItem。每次要查找特定項目時,簡單參考也比搜索列表或樹更快。 – Ash 2009-12-19 02:55:55

+0

同意你的意見。 – Benny 2009-12-19 03:01:19

1

我不記得這是否特別適用於Winforms中的TreeView控件,但是http://updatecontrols.net/是一個很好的數據綁定設置,它使得更新以非常平穩的方式實現超快速。你應該採取一個高峯。

+0

真酷酷圖書館。 – Benny 2009-12-19 04:02:43