public ViewModel() { Status = StatusView.NotInMeeting; ChangeStatusManuallyCommand = new RelayCommand <StatusView>(statusView => { SetStatus(statusView, true); }); }
private void SetStatus(StatusView statusView, bool manually) { PropertyChangedEventHandler onPropertyChanged = (sender, args) => { if (args.PropertyName == "Status") { FireStatusChangedManually(manually); } }; try { PropertyChanged += onPropertyChanged; Status = statusView; } finally { PropertyChanged -= onPropertyChanged; } }
public void ChangeStatusAutomatically(Status status) { SetStatus(StatusView.Of(status), false); }