C# CommunityToolkit — INotifyPropertyChanged с наследованием
Недавно я обнаружил, что можно автоматически генерировать код дляINotifyPropertyChanged
с использованиемCommunityToolkit
. Но я наткнулся на проблему.
У меня есть класс DTO, который извлекается из бэкэнда (и хранится в общем проекте, используемом как FE, так и BE):
public class TrainingDayDurationDto {
public DateOnly Date { get; set; }
public short DurationMinutes { get; set; }
public TrainingDayDurationDto(DateOnly date, short durationMinutes) {
Date = date;
DurationMinutes = durationMinutes;
}
}
затем во внешнем интерфейсе я сопоставляю этот DTO с конкретным объектом клиента, который может иметь определенные функции/свойства внешнего интерфейса, поэтому у меня есть:
[INotifyPropertyChanged]
public sealed partial class TrainingDayDuration : TrainingDayDurationDto {
[ObservableProperty] private DateOnly _date;
[ObservableProperty] private short _durationMinutes;
public TrainingDayDuration(DateOnly date, short durationMinutes) : base(date, durationMinutes) {
}
}
Я ожидал, что автоматически сгенерированные свойства дляTrainingDayDuration
переопределит те из родительского объекта, но, похоже, это не так. Потому что в отладчике я вижу 2xDate
и 2xDurationMinutes
такие свойства, как:
Каков правильный способ переопределить его? Или есть лучший способ, как подойти ко всему этому?