XLINQ – Samples With TreeView



XLINQ ile oluşturulmuş LINQ örnekleri içeren basit bir Windows Uygulaması..

1) Run-time XmlDocument oluşturma ve Dosya oluşturup, dosyaya kaydetme ve TreeView ‘a aktarma.
2) Xml veri içeren dosyadan okuma ve TreeView’a aktarma.
3) Xml veri içeren dosyadan okuma ve filtreleme.
4) AdventureWorks database’inden ProductCategory tablosu verilerini XLINQ ile okuma ve XML oluşturma ve TreeView’a aktarma.
5) AdventureWorks database’inden ProductCategory tablosu verilerini XLINQ ile okuma, filtreleme ve XML oluşturma ve TreeView’a aktarma.

Projeyi indirmek için tıklayınız..

Reklamlar

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..

C# – Klasör ve Dosya Hiyerarşisi Oluşturma

Bir Windows Application açalım..

Form üzerine 1 adet TreeView ve 1 tane button koyup aşağıdaki kodları yazalım..



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace CS_SearchDirectory
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

//Dosya sistemi dallanmasını oluşturan döngü..
private TreeNode src(string konum,TreeNode t)
{
//ilk olarak dallanmanınn başlayacağı klasörü belirtir..
//sonraki kullanımlarında iç içe klasör yapılarındaki klasörleri tek tek belirtir..

DirectoryInfo parentDir = new DirectoryInfo(konum);

//O anki klasördeki içindeki tüm doyalarda dön..
foreach (FileInfo f in parentDir.GetFiles())
{
//Dosyaları o klasör altına ekle..
t.Nodes.Add(f.Name);
}

//O anki klasörün altındaki klasörler için dön..
foreach (DirectoryInfo dir in parentDir.GetDirectories())

{
//eğer klasör varsa bu klasörü belirten bir treeNode oluştur..
TreeNode tn = new TreeNode(dir.Name);
//bu klasör dosya içerir yada içermez klasör içerir yada içermez biz yinede bir klasör olduğu için metodu kendi kendine çağırtıp klasör içini kontrol ediyoruz..
//bu klasör için yukardaki işlemler gerçekleşir,alt klasörleri ve dosyalar dallanma şeklinde, treeNode’lar halinde oluşur..
//Bu metod zaten treeNode döndürdüğü için oluşan treeNode’ların her biri bir klasör’dür ve üst treeNode ‘a eklenmesi gerekir..Burada Parent klasör t Node’ı oldugu için alttaki satırda iç klasörler t’ye eklenir..
t.Nodes.Add(this.src(dir.FullName, tn));
}

//gönderilen ilk directory geri gönderilir..
return t;
}

private void button1_Click(object sender, EventArgs e)
{
FolderBrowserDialog fd = new FolderBrowserDialog();

if (fd.ShowDialog() == DialogResult.OK)
{
//Dallanma oluşturmuş treeNode TreeView’a eklenir..
this.treeView1.Nodes.Add(this.src(fd.SelectedPath, new TreeNode(fd.SelectedPath)));
}
}
}
}