/// <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); }