Slide 7
Slide 7 text
CommunityToolkit.Mvvm × partial プロパティ
dotnet8まで(※C#12まで)
[ObservableProperty]
private string? _name;
自動生成プロパティと競合しないように命名
dotnet9から
[ObservableProperty]
public partial string? Name { get; private set; }
partial のおかげで競合しない
CommunityToolkit.Mvvmのsource generatorで自動生成されるプロパティ
public partial string? Name
{
get => field;
private set
{
if (!global::System.Collections.Generic.EqualityComparer.Default.Equals(field, value))
{
OnNameChanging(value);
OnNameChanging(default, value);
OnPropertyChanging(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangingArgs.Name);
field = value;
OnNameChanged(value);
OnNameChanged(default, value);
OnPropertyChanged(global::CommunityToolkit.Mvvm.ComponentModel.__Internals.__KnownINotifyPropertyChangedArgs.Name);
}
}
} 7