none
Entity Framework 5 - INotifyPropertyChanged Entegrasyonu? RRS feed

  • Soru

  • Selamlar;

    WPF projemde EF5 kullanıyorum ancak EF5 classları INotifyPropertyChanged implemantasyonunu içermediğinden bir classın propertisinde yapılan değişikliklerden DataGrid gibi UI nesneleri haberdar olmuyor. EF 5 class'larına INotifyPropertyChanged entegrasyonunu nasıl yaparım ya da classları auto generate eden yapıya bunu nasıl entegre edebilirim?

    Teşekkürler.

    23 Ekim 2013 Çarşamba 15:22

Yanıtlar

  • WPF projende MVVM(Model- View-ViewModel) desenini kullan. Model kısmı entity framework sınıflarından oluşur. ViewModel kısmında da Model'daki EF sınıflarını kullanarak gerekli işlemleri yaptırırsın. Zaten ViewModel sınıfına da INotifyPropertyChanged arayüzünü implemente edersin. UI binding işlemlerini de ViewModel tarafına ekleyeceğin property ler ile yaparsın.

    Bir diğer yol EF t4 template'ına INotifyPropertyChanged arayüzünü implemente edebilirsin. Burada benzer bir örnek var.

    Ama şiddetle MVVM kullanmanı öneririm.

    23 Ekim 2013 Çarşamba 17:21

Tüm Yanıtlar

  • WPF projende MVVM(Model- View-ViewModel) desenini kullan. Model kısmı entity framework sınıflarından oluşur. ViewModel kısmında da Model'daki EF sınıflarını kullanarak gerekli işlemleri yaptırırsın. Zaten ViewModel sınıfına da INotifyPropertyChanged arayüzünü implemente edersin. UI binding işlemlerini de ViewModel tarafına ekleyeceğin property ler ile yaparsın.

    Bir diğer yol EF t4 template'ına INotifyPropertyChanged arayüzünü implemente edebilirsin. Burada benzer bir örnek var.

    Ama şiddetle MVVM kullanmanı öneririm.

    23 Ekim 2013 Çarşamba 17:21
  • WPF projende MVVM(Model- View-ViewModel) desenini kullan. Model kısmı entity framework sınıflarından oluşur. ViewModel kısmında da Model'daki EF sınıflarını kullanarak gerekli işlemleri yaptırırsın. Zaten ViewModel sınıfına da INotifyPropertyChanged arayüzünü implemente edersin. UI binding işlemlerini de ViewModel tarafına ekleyeceğin property ler ile yaparsın.

    Bir diğer yol EF t4 template'ına INotifyPropertyChanged arayüzünü implemente edebilirsin. Burada benzer bir örnek var.

    Ama şiddetle MVVM kullanmanı öneririm.

    Projede baya ilerlediğim için mvvm modeline geçmem mümkün değil bu projede. Ama bundan sonrakiler için mantıklı olur. Mevcut durumu kurtarmak için anladığım kadarı ile yolladığın linkte classları generate eden kodu, inotify entegrasyonlu hale getiriyor. Class generator ile oynamadan bunu yapmanın alternatif bir yolu olabilir mi? EF'nin yarattığı classlara inotify implemente edilmiş Partial class yazıp gerekli propertyleri override etmek gibi bir şey yapılabilir mi? Ya da alternatif bir çözüm aklınıza geliyor mu?

    Bir yandan merak ettiğim EF'nin neden bunu kendinden desteklemediği :)


    • Düzenleyen Oxijen 24 Ekim 2013 Perşembe 16:05
    24 Ekim 2013 Perşembe 16:01