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

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s