示例#1
0
        /// <summary>
        /// Возвращает true, если значение свойства изменилось.
        /// </summary>
        /// <param name="propertyName">Название проверяемого свойства.</param>
        /// <param name="ignoreCase">При установленном значении true, не учитиывает регистр при сравнении строковых значений. Может быть использовано только при сравнении строковых значений.</param>
        /// <returns></returns>
        public bool IsPropertyChanged(string propertyName, bool ignoreCase)
        {
            if (string.IsNullOrEmpty(propertyName))
            {
                throw new ArgumentNullException("propertyName");
            }

            if (this.PropertyValues.ContainsKey(propertyName))
            {
                //получаем информацию о значениях свойства.
                ValueInfo valueInfo = this.PropertyValues[propertyName];

                //ругаемся, если не удалось получить экземпляр значений свойства.
                if (valueInfo == null)
                {
                    throw new Exception(string.Format("Не удалось получить экземпляр значений свойства {0}.", propertyName));
                }

                //возвращаем результат сравнения исходного и нового значения.
                return(valueInfo.IsValueChanged(ignoreCase));
            }

            //возвращаем false, если значение свойства не разу не было изменено.
            return(false);
        }