protected UploadingTaskViewModel() { ChangeStatusCommand = new DependencyCommand(ChangeStatus, DependencyCommand.AlwaysCan); StopCommand = new DependencyCommand(Stop, DependencyCommand.AlwaysCan); WeakEventManager <DispatcherTimer, EventArgs> .AddHandler(timer, nameof(timer.Tick), Callback); void Callback(object sender, EventArgs e) { OnPropertyChanged(nameof(Name)); OnPropertyChanged(nameof(Status)); //OnPropertyChanged(nameof(Uploaded)); OnPropertyChanged(nameof(Total)); OnPropertyChanged(nameof(Uploaded)); OnPropertyChanged(nameof(Progress)); if (Status == UploadStatus.Completed) { UploadCompleted?.Invoke(this, new EventArgs()); } else if (Status == UploadStatus.Stop) { UploadAborted?.Invoke(this, new EventArgs()); } } }