OnPropertyChanged 메서드는 C#에서 데이터 바인딩과 MVVM 패턴(Model-View-ViewModel)을 사용할 때 중요한 역할을 한다.
속성 값이 변경되었음을 알리는 역할을 하는 메서드이다. 특히 WPF, UWP와 같은 XAML 기반 UI 프레임 워크에서 데이터 바인딩을 사용할 때, 뷰(View)에 변경 사항을 자동으로 반영하기 위해 사용된다.
코드 예시
class Player
{
private string name;
public string Name
{
get { return name; }
set
{
name = value;
OnPropertyChanged();
}
}
protected void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected void OnpropertyChanged(PropertyChangedEventArgs e)
{
Console.WriteLine($"{e.PropertyName}이(가) 변경되었습니다.")
}
}
class Program
{
static void Main(string[] args)
{
Player p = new Player();
p.Name = "이강인";
p.Name = "손흥민";
}
}
// Name이(가) 뱐경되었습니다.
// Name이(가) 뱐경되었습니다.
해당 예시 코드는 Player 클래스이며 Name 값이 변경되면 콘솔창에 변경을 알려준다.
[System.Runtime.CompilerServices.CallerMemberName] string propertName = "" 이 부분은 C#의 CallerMemberName 속성으로, 이 속성을 사용하면 메서드를 호출하는 코드에서 자동으로 속성 이름을 전달할 수 있다. 즉, OnPerpertyChanged를 호출할 때 속성 이름을 명시적으로 지정하지 않아도 컴파일러가 자동으로 채워준다.
Player 객체를 만들어서 Name 값을 변경하면 콘솔에 "Name이(가) 변경되었습니다."가 나온다.
'C# > etc.' 카테고리의 다른 글
[C#] ProcessStartInfo 클래스 (0) | 2025.04.10 |
---|---|
[C#] 프로퍼티(Property) / get, set 메서드 (0) | 2025.01.13 |
[C#] 열거형 Enum (0) | 2024.12.16 |
[C#] as, is 키워드 (0) | 2024.12.12 |
[C#] 연산자 오버로딩 (Operator Overloading) (1) | 2024.12.11 |