Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencetuskan Peristiwa Apabila Nilai Harta Berubah dalam C#?

Bagaimana untuk Mencetuskan Peristiwa Apabila Nilai Harta Berubah dalam C#?

Patricia Arquette
Patricia Arquetteasal
2024-12-30 13:33:10895semak imbas

How to Trigger an Event When a Property Value Changes in C#?

Cara Meningkatkan Acara mengenai Perubahan Nilai Harta

Penerangan Masalah:

Anda mahu untuk mencetuskan peristiwa apabila nilai harta tertentu, seperti ImageFullPath1, berubah. Walaupun INotifyPropertyChanged ialah penyelesaian yang diketahui, anda lebih suka pendekatan berasaskan peristiwa.

Jawapan:

Untuk melaksanakan pemberitahuan perubahan sifat menggunakan acara, gunakan antara muka INotifyPropertyChanged:

public class MyClass : INotifyPropertyChanged
{
    // ...
}

Antara muka INotifyPropertyChanged mentakrifkan a Acara PropertyChanged yang boleh dilanggan oleh pengguna. Untuk mencetuskan peristiwa ini, laksanakan kaedah OnPropertyChanged:

protected void OnPropertyChanged(PropertyChangedEventArgs e)
{
    // ...
}

protected void OnPropertyChanged(string propertyName)
{
    OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}

Untuk sifat ImageFullPath1, kemas kini penetap seperti berikut:

public string ImageFullPath1
{
    get { ... }
    set
    {
        if (value != ImageFullPath1)
        {
            ImageFullPath1 = value;
            OnPropertyChanged(nameof(ImageFullPath1));
        }
    }
}

Sebagai alternatif, untuk sifat tertentu, anda boleh membuat acara tambahan :

protected void OnImageFullPath1Changed(EventArgs e)
{
    // ...
}

public event EventHandler ImageFullPath1Changed;

Dalam penetap harta, tambah OnImageFullPath1Changed(EventArgs.Empty) selepas OnPropertyChanged.

Kod yang Diperbaiki dengan .NET 4.5:

Dengan .NET 4.5, anda boleh menggunakan CallersetemberNameAt more

protected void OnPropertyChanged(
    [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
{
    OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}

Atas ialah kandungan terperinci Bagaimana untuk Mencetuskan Peristiwa Apabila Nilai Harta Berubah dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn