public EncoderBindingEditorViewModel(IServiceProvider serviceProvider, EncoderActionBinding encoderBinding, IDeviceEncoder?deviceEncoder) : base(encoderBinding, deviceEncoder)
        {
            _bindingActionRepository = serviceProvider.GetRequiredService <BindingActionRepository>();
            _encoderBinding          = encoderBinding;
            IEnumerable <SimpleBindableActionEditorViewModel> availableActions = _bindingActionRepository.GetAll <ISimpleBindableAction>().Select(b => new SimpleBindableActionEditorViewModel((ISimpleBindableAction)b.CreateNew()));

            AvailableClockwiseActions       = availableActions.ToList();
            AvailableAntiClockwiseActions   = availableActions.ToList();
            CommandClearClockwiseAction     = new NotifiedRelayCommand(o => SelectedClockwiseAction = null, o => EncoderClockwiseAction != null, this, nameof(EncoderClockwiseAction));
            CommandClearAntiClockwiseAction = new NotifiedRelayCommand(o => SelectedAntiClockwiseAction = null, o => EncoderAntiClockwiseAction != null, this, nameof(EncoderAntiClockwiseAction));

            LoadFromModel();
            EnableTouchedTracking();
        }
 protected IEncoderBindingEditorViewModel(EncoderActionBinding actionBinding, IDeviceEncoder?deviceButton) : base(actionBinding, deviceButton)
 {
 }