C#涓璱notifypropertychanged鎬庝箞浣跨敤
鍦?C# 涓紝INotifyPropertyChanged 鏄竴涓帴鍙o紝鐢ㄤ簬閫氱煡缁戝畾婧愬璞$殑灞炴€у凡鏇存敼銆傞€氬父鎯呭喌涓嬶紝鎮ㄩ渶瑕佸疄鐜拌鎺ュ彛骞跺湪灞炴€ф洿鏀规椂瑙﹀彂 PropertyChanged 浜嬩欢銆備互涓嬫槸涓€涓畝鍗曠殑绀轰緥锛?/p>
using System;
using System.ComponentModel;
class Person : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
if (name != value)
{
name = value;
OnPropertyChanged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
class Program
{
static void Main()
{
Person person = new Person();
person.PropertyChanged += (sender, e) =>
{
Console.WriteLine($"{e.PropertyName} has changed");
};
person.Name = "Alice";
}
}
鍦ㄤ笂闈㈢殑绀轰緥涓紝Person 绫诲疄鐜颁簡 INotifyPropertyChanged 鎺ュ彛锛屽苟鍦?Name 灞炴€х殑 setter 涓皟鐢ㄤ簡 OnPropertyChanged 鏂规硶鏉ヨЕ鍙?PropertyChanged 浜嬩欢銆傚湪 Main 鏂规硶涓紝鎴戜滑璁㈤槄浜?PropertyChanged 浜嬩欢锛屽苟鍦ㄥ睘鎬ф洿鏀规椂杈撳嚭鐩稿簲鐨勪俊鎭€?/p>
甯屾湜杩欏彲浠ュ府鍔╂偍寮€濮嬩娇鐢?INotifyPropertyChanged 鎺ュ彛鍦?C# 涓疄鐜板睘鎬ф洿鏀归€氱煡銆?/p>
相关问答