부동산 가치 변경에 대한 이벤트를 발생시키는 방법
문제 설명:
원하는 것 ImageFullPath1과 같은 특정 속성의 값이 변경될 때마다 이벤트를 트리거합니다. INotifyPropertyChanged는 알려진 솔루션이지만 이벤트 기반 접근 방식을 선호합니다.
답변:
이벤트를 사용하여 속성 변경 알림을 구현하려면 INotifyPropertyChanged 인터페이스를 활용하세요.
public class MyClass : INotifyPropertyChanged { // ... }
INotifyPropertyChanged 인터페이스는 PropertyChanged 이벤트를 정의합니다. 소비자가 구독할 수 있습니다. 이 이벤트를 트리거하려면 OnPropertyChanged 메서드를 구현합니다.
protected void OnPropertyChanged(PropertyChangedEventArgs e) { // ... } protected void OnPropertyChanged(string propertyName) { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
ImageFullPath1 속성의 경우 다음과 같이 setter를 업데이트합니다.
public string ImageFullPath1 { get { ... } set { if (value != ImageFullPath1) { ImageFullPath1 = value; OnPropertyChanged(nameof(ImageFullPath1)); } } }
또는 특정 속성의 경우 추가 이벤트를 생성할 수 있습니다. :
protected void OnImageFullPath1Changed(EventArgs e) { // ... } public event EventHandler ImageFullPath1Changed;
속성 설정자에 다음을 추가하세요. OnPropertyChanged 이후의 OnImageFullPath1Changed(EventArgs.Empty).
.NET 4.5의 향상된 코드:
.NET 4.5에서는 CallerMemberNameAttribute를 사용하여 보다 간결하게 구현할 수 있습니다.
protected void OnPropertyChanged( [System.Runtime.CompilerServices.CallerMemberName] string propertyName = "") { OnPropertyChanged(new PropertyChangedEventArgs(propertyName)); }
위 내용은 C#에서 속성 값이 변경될 때 이벤트를 트리거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!