XLINQ – Binding XDocument To Treeview on Windows Application

Elimizde bulunan XML dosyanın TreeView kontrolüne hiyerarşisinin aktarılması. Örnek bir XML dosya oluşturuyoruz..



Oluşturacağımız 2 adet metod olacaktır. Kullanacağımız metoda Xml dosyanın Root Element’ini ve “TreeView” kontrolünü vereceğiz. “ReadXmlFile” butonuna tıklanınca Xml dosya okunur ve “FillTree” metodu çalıştırılır..

private void btnReadXmlFile_Click(object sender, EventArgs e)
{
XDocument xDoc = XDocument.Load(“..\\..\\XMLFile1.xml”);
FillTree(xDoc, this.treeView1);
}

private void FillTree(XDocument xDoc, TreeView treeViewControl)
{
if (xDoc != null)
{

if (treeViewControl != null)
{

XElement rootElement = xDoc.Root;

if (rootElement != null)
{

this.treeView1.Nodes.Add(this.AddNodeToRootTreeNode(rootElement, null));

}
}
}
}

private TreeNode AddNodeToRootTreeNode(XElement element, TreeNode treeNode)
{

if (treeNode == null)

treeNode = new TreeNode(element.Name.LocalName);

foreach (XElement xElement in element.Elements())
{

TreeNode childTreeNode = new TreeNode(xElement.Name.LocalName);
treeNode.Nodes.Add(childTreeNode);

if (xElement.HasElements)
this.AddNodeToRootTreeNode(xElement, childTreeNode);

}

return treeNode;

}


Sonuç;



Kodumuzda bulunan “FillTree” metodunda bulunan aşağıdaki kod satırında dikkat edilmesi gereken bir nokta vardır..

this.treeView1.Nodes.Add(this.AddNodeToRootTreeNode(rootElement, null));

TreeNode” parametresi “null” olarak verilmiştir. bu sayede Root elementinin TreeNode’ıda otomatik oluşturulmaktadır. Bu satırda “null” ifadesi yerine verilen herhangi bir TreeNode parametresi ile Xml dosya hiyerarşisinin, parametre olarak verilen “TreeNode” altında hiyerarşisinin oluşturulması sağlanabilir..

Reklamlar