İçeriğe geç →

WPF INotifyPropertyChanged Nedir ve Implementasyonu

Merhaba arkadaşlar, WPF’e giriş makalemi binding modları üzerinde yapmıştım ve şimdi en az bindingsler kadar önemli olan INotifyPropertyChanged arayüzü nedir ve nasıl implemente edilir onun üzerinde duracağız.

Ne işe yarar bu INotifyPropertyChanged arayüzü?

Bir property’nin(özelliğin) değeri değiştiği zaman bu değişimi eş zamanlı olarak view(arayüz) kısmına bildirilmesini sağlar.

Daha iyi anlayabilmek için basit bir örnek yapalım.

Örneğimizde Gird içerisinde 2 adet TextBox yer alacak ve bunlar TwoWay şeklinde bind olacaklar ilgili Person modelinin propertylerine. Person modeli ise sadece Name, Lastname ve Fullname propertylerine sahip olup, INotifyPropertyChanged arayüzünü implemente edecek. Sonrasında ise bir Label içerisinde Fullname‘i göstereceğiz.

Buradaki nokta Fullname propertysi bize TextBox‘lardan girilen Name ve Lastname propertylerinin birleşmiş hallerini verip eş zamanlı olarak TextBox’lar üzerinde her değişim gerçekleştiğinde Label içinde de değişimini sağlamış olacağız.

Önce Person modelimizi oluşturalım:

Sınıfımızı oluşturduk ve INotifyPropertyChanged arayüzünü implemente ettik. Bu arayüz ile bize PropertyChanged isminde bir event geldi. Implementasyonunu ise değişen propertynin ismini alacak olan void tipinde OnPropertyChanged metodunu oluşturup event’i tanımladık.

Not: Değişen propertynin ismini alabilmek için parametre olarak string bir değişken kullandık, .Net 4.5 ve üzeri framework versiyonları için CallerMemberNameAttribute aracılığı ile daha kolay handle edebiliriz. Parametre olarak “[CallerMemberName] string propertyName = null” şeklinde geçmemiz ve notify ederken set metodu içerisinde OnPropertyChanged() şeklinde çağırmamız yeterli olacaktır ve ilgili propertynin ismini otomatik olarak alacaktır.

Modelimizi tanımladığımıza göre şimdi View kısmına geri dönebiliriz:

xmlns:m attributu ile gerekli Models namespace’imizi tanımladığımıza göre Window.Resources nodu altında gerkeli modelimizi ekliyoruz. Grid’in DataContext özelliğinede person modelimizi source olarak gösteriyoruz.

Gerekli binding işlemlerinide görebileceğiniz üzere basitçe gerçekleştiriyoruz.

Son ekran görüntüsü bu şekildedir.

notify

 

Örnek projeye ekten ulaşabilirsiniz. Bir sonraki makalemde görüşmek dileğiyle. 🙂

INotifyPropertyChangedExample

 

Bu makale toplam (1604) kez okunmuştur.

5
0



Kategori: WPF

Tek Yorum

  1. mehmet mehmet

    örnek güzel ama gereksiz alanlar var dostum. kafa karışıklığına sebep olabilir. Name ve Surname modu twoway olduğu için ayrıca propertychanged eventi ne gerek yok. Fullname içinde set olma durumu olmadığından yine propertychanged eventi gereksiz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.