Sobes.tech
Junior

INotifyPropertyChanged arayüzü ne işe yarar?

sobes.tech yapay zeka

AI'dan gelen yanıt

INotifyPropertyChanged arayüzü, müşterilere (genellikle kullanıcı arayüzü öğeleri) bir özelliğin değerinin değiştiğini bildirmek için kullanılır. Bu, MVVM (Model-View-ViewModel) deseninin ve WPF gibi UI çerçevelerinde veri bağlamanın temel mekanizmasıdır.

Bir sınıf bu arayüzü uygulayan ve bir özelliğin değeri değiştiğinde:

  1. PropertyChanged olay işleyicisi çağrılır.
  2. İşleyici, değişen özelliğin adını içeren PropertyChangedEventArgs türünde argümanlar alır.
  3. Bu olaya abone olan UI öğeleri veya diğer istemciler bildirim alır ve yeni değere göre görüntülerini güncelleyebilir.

Uygulama örneği:

using System.ComponentModel;
using System.Runtime.CompilerServices;

public class MyData : INotifyPropertyChanged
{
    private string _name;

    public string Name
    {
        get { return _name; }
        set
        {
            if (_name != value) // Gerçekten değişip değişmediğini kontrol et
            {
                _name = value;
                OnPropertyChanged(); // Bildirim metodunu çağır
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

.NET 6 ve üzeri sürümlerde, CommunityToolkit.Mvvm paketinden [ObservableProperty] özniteliği kullanılarak boilerplate kodu otomatik olarak oluşturulabilir:

using CommunityToolkit.Mvvm.ComponentModel;

public partial class MyData : ObservableObject
{
    [ObservableProperty]
    private string _name;
}