C # TreeView – Preserve State

Kontrol TreeView built-in ke .Net Framework sangat kuat tetapi sedikit dasar. Dibutuhkan beberapa kreativitas untuk meningkatkan fungsinya. Misalnya, bagaimana mempertahankan keadaan node yang diperluas dan runtuh …

Alasan untuk mempertahankan keadaan simpul pohon yang diperluas / diciutkan adalah untuk mencegah pengguna menjadi bingung ketika sebuah node ditambahkan atau dihapus dari TreeView. Tepat, ini terjadi ketika TreeView menampilkan data dinamis.

Ketika kontrol TreeView diisi dengan data, konten sebelumnya biasanya dihapus. Jadi, jika Anda ingin mempertahankan status TreeView, Anda perlu menemukan cara untuk menyelamatkan negara, memuat ulang data, kemudian memulihkan keadaan.

Idenya sederhana, kejatuhannya hanya tidak akan berfungsi untuk sub node. Kita harus menggunakan struktur data Kamus.

Kamus akan menyimpan dua nilai per entri, string (untuk Nama node) dan boolean (untuk apakah node diperluas).

Setelah nilai-nilai disimpan dalam Kamus, TreeView dibersihkan dan kembali dipenuhi dengan data baru. Kemudian kita dapat kembali dan untuk setiap entri dalam Kamus: periksa apakah Node masih ada, dan jika ya, gunakan fungsi Perluas dan Ciutkan untuk menetapkan status node yang tepat.

Perhatikan bahwa ini lebih ringan daripada sekadar membuat salinan TreeView sebagai referensi. Namun, sebagaimana disebutkan di atas, ini hanya akan bekerja dengan node tingkat atas. Untuk tingkat lebih, maka salinan referensi dari TreeView akan diperlukan.

Leave a Reply

Your email address will not be published. Required fields are marked *