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
960 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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan