/// <summary>
        /// IsReadOnlyProperty property changed handler.
        /// </summary>
        /// <param name="oldValue">Old value.</param>
        /// <param name="newValue">New value.</param>
        protected virtual void OnIsReadOnlyChanged(bool oldValue, bool newValue)
        {
            if (!_settingIsReadOnly)
            {
                _settingIsReadOnly = true;
                this.IsReadOnly    = oldValue;

                throw new InvalidOperationException(string.Format(CultureInfo.CurrentUICulture, Properties.Resources.InvalidAttemptToChangeReadOnlyProperty, "IsReadOnly"));
            }
            else
            {
                _interactionHelper.OnIsReadOnlyChanged(newValue);
            }
        }