ฉันมีต้นไม้ดังต่อไปนี้:
Animals
|
|___Zebra
| |__Head
| |__Arms
| |__Legs
|
|___Monkey
|__Head
|__Arms
|__Legs
สัตว์แต่ละตัวมีหมายเลข ID เก็บไว้ในช่อง Tag และชื่ออยู่ในช่องชื่อของโหนด ฉันต้องการกดปุ่มที่เขียนว่า "Sort by ID" และให้ "Zebra" ด้านบนกลายเป็น "14" เป็นต้น จากนั้น รีสอร์ทเป็นตัวเลข แต่อยากให้เด็กๆ อยู่ในลำดับ ศีรษะ แขน ขา เมื่อฉันใช้โค้ดต่อไปนี้ มันใช้งานได้ แต่ยังเรียงลำดับหัว แขน ขา เป็นแขน หัว ขาด้วย ฉันได้ลองใช้ NodeSorter แล้ว แต่ไม่ได้รับผลลัพธ์ที่แตกต่างออกไป ฉันยังใหม่มากกับ C# ดังนั้นฉันอาจจะใช้งานมันไม่ถูกต้อง :) ฉันยังใช้โหนดที่กำหนดเองพร้อมช่องพิเศษสองสามช่องเพื่อจัดเก็บข้อมูลและค่าบูลีน นั่นคือสิ่งที่ "JacksNode" อ้างถึงด้านล่างนี้
นี่คือรหัส:
public static void sortByAnimalID(TreeView tv)
{
tv.BeginUpdate();
foreach (TreeNode treeNode in tv.Nodes[0].Nodes)
{
if (((JacksNode)treeNode).IsAnimal)
{
treeNode.Text = Convert.ToString(treeNode.Tag);
treeNode.Name = Convert.ToString(treeNode.Tag);
}
}
tv.Sort();
tv.EndUpdate();
}
มีความคิดเห็นเกี่ยวกับสิ่งที่ฉันทำผิดหรือไม่? ฉันค้นหาเว็บเป็นเวลาสองสัปดาห์และมีบทความ Treeview มากมายจนล้นหลาม อย่างไรก็ตามไม่มีใครมีความเฉพาะเจาะจงเรื่องนี้ ขอบคุณเพื่อน ๆ / gals สำหรับข้อเสนอแนะใด ๆ