|
TreeView Kontrolüne Kullanıcı Tanımlı Nesneler Eklemek |
|
Gönderiliyor lütfen bekleyin... |
|
|
Bu makalemizde Treeview kontrolüne kullanıcı
tanımlı nesneleri nasıl ekleyeceğimizi öğreneceğiz. Bildiğiniz gibi bu kontrolün
Nodes adındaki property sine eklediğimiz nesne TreeNode sınıfından oluşturulmuş
bir nesne olmalı. Bu sınıfın constructor ının parametresi string türünde. Yani
bu, Treeview kontrolüne string dışında başka bir tipten nesneyi
ekleyemeyeceğimiz anlamına geliyor ama yanılıyor olabiliriz.
Eğer node olarak ekleyeceğimiz nesnenin ToString() metodunu override eder,
object tipinde verileri saklaması için TreeNode sınıfından yeni bir sınıf
türetir ve object.ToString() dönüş değerini temel sınıfın constructor ına
gönderirsek başarıya ulaşmışız demektir. Böylece Treeview kontrolünü sanki
string tipinde nodelar saklıyormuş gibi aldatmış olacağız. :) Buraya kadar
teorik bilgilere takılıp anlayamayanlar olabilir, uygulamada daha net
anlaşılacak herşey.
public class
DataTreeNode : TreeNode
{
private object data;
public DataTreeNode(
object data ) : base
( data.ToString() )
{
this.data
= data;
}
public object Data
{
get {
return data; }
}
} |
Örnek olarak Treeview kontrolümüzün Musteri
adındaki bir sınıfın nesnelerini sakladığını düşünürsek;
public class
Musteri
{
private string ad;
private string soyad;
private int yas;
public Musteri(string
ad, string soyad, int
yas)
{
this.ad
= ad;
this.soyad
= soyad;
this.yas
= yas;
}
public string Ad
{
get {
return ad; }
set { ad
= value; }
}
public string Soyad
{
get {
return soyad; }
set {
soyad = value; }
}
public int Yas
{
get {
return yas; }
set {
yas = value; }
}
public override string
ToString() // <------ DataTreeNode sınıfında temel
constructora gönderilecek ToString() işte burası.
{
return
ad + " " + soyad;
}
} |
Şimdi Formumuza bir Treeview sürükle bırak
yapıp, Formun OnLoad metodunda birkaç müşteri tanımlayıp nodelara ekleyelim.
private void
Form1_Load(object sender, System.EventArgs
e)
{
/* 1. müşteriyi treeye ekliyoruz. */
Musteri musteri = new
Musteri("ali", "veli", 14);
DataTreeNode node1 = new
DataTreeNode( musteri );
treeView1.Nodes.Add( node1 );
/* 2. müşteri */
musteri = new Musteri("ahmet",
"kaya", 26);
DataTreeNode node2 = new
DataTreeNode( musteri );
treeView1.Nodes.Add( node2 );
/* 3. müşteriyi 2. müşterinin altına
ekliyoruz. */
musteri = new Musteri("bakkal",
"hasan", 33);
DataTreeNode node3 = new
DataTreeNode( musteri );
node2.Nodes.Add( node3 );
} |
TreeView OnAfterSelect olayında ise seçili
nodedan musteriyi alıp editboxlara DataBind yapalım.
private void
treeView1_AfterSelect(object sender,
System.Windows.Forms.TreeViewEventArgs e)
{
DataTreeNode node = (DataTreeNode) e.Node;
// <--- Node DataTreeNode tipinde
txtAd.DataBindings.Clear();
txtSoyad.DataBindings.Clear();
txtYas.DataBindings.Clear();
txtAd.DataBindings.Add("Text", node.Data, "Ad");
txtSoyad.DataBindings.Add("Text", node.Data, "Soyad");
txtYas.DataBindings.Add("Text", node.Data, "Yas");
} |
Gelecek makalede görüşmek
dileğiyle. Programın kaynak kodlarını
buradan indirebilirsiniz.
Orhan ALBAY
[email protected]
Makale:
TreeView Kontrolüne Kullanıcı Tanımlı Nesneler Eklemek C#, Visual C# ve .NET Orhan Albay
|
|
|
-
-
Eklenen Son 10
-
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
|
|