프로그래밍/C#

[WPF] ObservableObject

Victory_HA 2024. 12. 24. 15:48
  • CommunityToolkit.Mvvm 라이브러리를 사용하여 ObservableProperty를 사용해봅시다.
internal partial class FileInfoBase : ObservableObject
{
     [ObservableProperty]
     private bool _isDenied;    // `_`로 시작해야하는 규칙이 있음

     public string Name { get; set; }
     public string FullPath { get; set; }
     public int Depth { get; set; }
     public long Length { get; set; }
     public IconType IconType { get; set; }

     public void test()
     { 
         IsDenied = true;    //IsDenied를 생성하지 않았지만 ObservableObject 상속 받아 자동으로 생성할 수 있다.
     }
}
  • ObservableObject를 상속받았는데, 이는 일반적으로 MVVM 패턴에서 사용되는 도구인 CommunityToolkit.Mvvm 라이브러리를 사용할 때 자주 활용됩니다.
  • ObservableObject는 속성이 변경될 때 알림(PropertyChanged)을 제공하기 위해 사용됩니다.

ObservableProperty 속성

[ObservableProperty]
private bool _isDenied;

// 이하 생략 가능
//public bool IsDenied
//{
//    get { return _isDenied; }
//    set
//    {
//        _isDenied = value;
//        OnPropertyChanged(nameof(IsDenied));
//    }
//}
  • _isDenied 필드를 선언하고,[ObservableProperty] 어트리뷰트를 사용하면
  • 자동으로 public IsDenied 속성을 사용할 수 있습니다. (단, 코드에는 보이지 않습니다.)

'프로그래밍 > C#' 카테고리의 다른 글

[C#] 팩토리 패턴  (0) 2025.01.03
[C#] C# 10.0 CallerArgumentExpression특성  (0) 2025.01.02
[C#] CPU, DISK I/O 스트레스 테스트  (0) 2024.10.18
[WPF] GroupBox 안에 2개 이상의 요소 넣기  (0) 2024.10.15
[C#] WPF Func<T>  (0) 2024.09.27