Merhaba arkadaşlar,
yazmayalı çok oldu özledim yazmayı (: işlerden fırsat bulamadım desem yeridir. daha once verdiğim Grid sınıfında  BeforeCellPrint ,Rowprint gibi eventlar görmüşsünüzdür. arkadaşlarıdan biri msnden bunların nasıl çalıştığını sordu. sınıftaki kullanımını incelese sanırım olayı tam anlamak için bunu bana iletti. olaylarla mimari geliştirmek programlamada büyük önem arz eder.  hemen her programcı kodladığı winForm uygulamalarında buton_Onclick  olayı ile tanışmıştır. C#ta eventlar delegateler sayesinde olur. delegate türke anlamıyla vekil (aracı) demek. öyle bir tp düşünün ki bu  bir fonksiyon tipine denk geliyor. fonksiyon tanımına uyan bir tip belirliyorsunuz
örnek:

public delegate void DataSourceChangedEventHandler(D3Grid sender, DataTable currentData, DataTable newData);

grid sınıfımız DataTable içindeki satırlar ve sütunlarla bir html tablo oluşturuyor bildiğiniz gibi. Datasource değiştiğinde tetiklenmesini istediğim bazı olaylar vardı ve bunlar için DataSourceChangedEventHandler tipinden fonksiyonlara denk gelecek bu delegate tanımını yazdım. sınıfın kendisini ,mevcut datatable’i ve atanan datatable’i parametre olarak verdik. fonksiyonlarımızı atayabileceğimiz bir de event tanımadık

public event DataSourceChangedEventHandler DataSourceChanged;

bunun tetiklenmesini şu şekilde sağladık.

private DataTable _datatable;

public DataTable DataSource
{
get
{
return _datatable;
}
set
{
if (DataSourceChanged != null)
{
DataSourceChanged(this, _datatable, value);
}
_datatable = value;
}
}

Datasource propertysi set edildiğinde DataSourceChanged adlı elemanımıza olay atanmışsa bunun parametrelerini verip tetiklenmesini sağladık.

bu anlatımım için de yine her anlatımımda olduğu gibi örnekler artııkça sizinle paylaşacağım.

iyi çalışmalar.

Leave a Reply

(required)

(required)


× six = 48

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

© 2012 Tufan Suffusion theme by Sayontan Sinha