При назначении свойству Task со значением и привязке значения с обработчиком событий делегата. Выбирается ли значение для GarbageCollection после прохождения нового значения? Насколько я понимаю, поскольку в системе больше нет ссылки на старое значение, оно помечается для сборки мусора.
private ITask _task;
public ITask Task
{
get => _task;
private set
{
if(_task != value)
{
if(value != null)
value.PropertyChanged += (s, e) =>
{
if(((ITask)s).Status == TaskStatus.Ready)
RaisePropertyChanged(nameof(ButtonCommand));
};
_task = value;
RaisePropertyChanged();
}
}
}