private void OnUrlPropertiesChanged()
 {
     RaisePropertyChanged(nameof(StartRecordingURL));
     RaisePropertyChanged(nameof(StopRecordingURL));
     StartRecordingCommand.RaiseCanExecuteChanged();
     StopRecordingCommand.RaiseCanExecuteChanged();
 }
        private void ViewModelPropertyChanged(object sender, PropertyChangedEventArgs e) =>
        OnDispatchEvent(() =>
        {
            switch (e.PropertyName)
            {
            case "StreamingHost":
                OnUrlPropertiesChanged();
                break;

            case "ApplicationName":
                OnUrlPropertiesChanged();
                break;

            case "StreamName":
                OnUrlPropertiesChanged();
                break;

            case "Username":
                OnUrlPropertiesChanged();
                break;

            case "Credentials":
                OnUrlPropertiesChanged();
                break;

            case "IsBroadcasting":
                StartRecordingCommand.RaiseCanExecuteChanged();
                StopRecordingCommand.RaiseCanExecuteChanged();
                if (this._mainViewModel.IsBroadcasting)
                {
                    break;
                }

                IsRecording = false;
                break;
            }
        });