- 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 속성을 사용할 수 있습니다. (단, 코드에는 보이지 않습니다.)