/// <summary>
        /// Initializes a new instance of the <see cref="SelectableControlBase"/> class.
        /// </summary>
        /// <param name="selectableControlModel">
        /// The selectable control model.
        /// </param>
        public SelectableControlBase(ISelectableControlModel selectableControlModel)
        {
            this.SelectableControlModel = selectableControlModel;
            this.SelectableControlModel.PropertyChanged += this.SelectableButtonModelOnPropertyChanged;

            this.ToggleIsSelectableCommand = new DelegateCommand(() => this.IsSelectable = !this.IsSelectable);
            Commands.ToggleSelectionEnabledCommand.RegisterCommand(this.ToggleIsSelectableCommand);
        }
 /// <summary>
 ///     Initializes a new instance of the <see cref="SelectableButtonViewModel" /> class.
 /// </summary>
 /// <param name="selectableControlModel">
 ///     The selectable button model.
 /// </param>
 public SelectableButtonViewModel(ISelectableControlModel selectableControlModel)
     : base(selectableControlModel)
 {
 }
 /// <summary>
 ///     Initializes a new instance of the <see cref="SelectableImageViewModel" /> class.
 /// </summary>
 /// <param name="selectableControlModel">
 ///     The selectable control model.
 /// </param>
 public SelectableImageViewModel(ISelectableControlModel selectableControlModel)
     : base(selectableControlModel)
 {
 }