24 Temmuz 2012 Salı

Sayfa Üzerindeki Aynı Tipten Nesnelere Programatik Erişim

Bugün, Microsoft Yaz Okulu’nda ders anlatırken aldığım sorulardan birisini başkalarının da işine yarayabileceğini düşünerek paylaşmak istedim. Detayları aşağıda bulabilirsiniz.

Sayfa üzerinde yer alan, aynı tipten tüm nesnelerin belirli bir özelliğine erişmek ya da değiştirmek gerektiğinde, örneğin; tüm Button’ların arkaplan renklerini değiştirmek ya da tüm TextBox’ların içeriklerini boşaltmak gerektiğinde, bu işi taşıyıcı kontrol üzerinde döngüye girerek kolayca halledebiliriz.

Bunu bir örnek ile açıklamak için, yeni bir proje açalım ve sayfamız üzerine aşağıda görmüş olduğunuz gibi üç adet TextBox ve bir de Button sürükleyip bırakalım.

image

Şimdi, Button üzerine tıklandığında, taşıyıcı kontrol içerisindeki tüm TextBox’ların Text özelliklerine erişip, üzerine boş değer atayacak kodu yazmalıyız. Bu örnekte, erişmek istediğimiz kontroller TextBox’lar. TextBox’larımızın taşıyıcısı da ContentPanel isimli bir Grid. Bu durumu görselde yer alan XAML kodları içerisinde görebilirsiniz.

Aşağıdaki kod ile ContentPanel isimli taşıyıcı kontrol (grid) içerisinde yer alan tüm alt üyeler üzerinde bir döngüye giriyoruz. Her bir üyeyi tek tek denetleyerek, TextBox olup olmadığını tespit ediyoruz ve eğer TextBox ise, doğru tipe dönüştürerek Text özelliğine erişip boş değer atıyoruz.

image

NOT: Bu işlemi gerçekleştirebilmek için üzerinde işlem yapmak istediğimiz üyelere bir isim verilmesi zorunlu değil sadece tip bilgisi ile erişip işlem yapmamız mümkün.