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
Lepaskan: 2024-12-30 13:33:10
asal
891 orang telah melayarinya

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
{
    // ...
}
Salin selepas log masuk

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));
}
Salin selepas log masuk

Untuk sifat ImageFullPath1, kemas kini penetap seperti berikut:

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

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

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

public event EventHandler ImageFullPath1Changed;
Salin selepas log masuk

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));
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan