protected override void ForEachMatch(PropertyDependencyType targetDependencyType, Action <NativeStorePropertyDefinition> action)
 {
     for (int i = 0; i < this.dependencies.Length; i++)
     {
         PropertyDependency propertyDependency = this.dependencies[i];
         if ((propertyDependency.Type & targetDependencyType) != PropertyDependencyType.None)
         {
             action(propertyDependency.Property);
         }
     }
 }
        public bool IsModifiedProperty(PropertyDefinition propertyDefinition)
        {
            this.CheckDisposed("IsModifiedProperty");
            if (!this.IsException)
            {
                return(false);
            }
            SmartPropertyDefinition smartPropertyDefinition = propertyDefinition as SmartPropertyDefinition;

            if (smartPropertyDefinition != null)
            {
                for (int i = 0; i < smartPropertyDefinition.Dependencies.Length; i++)
                {
                    PropertyDependency propertyDependency = smartPropertyDefinition.Dependencies[i];
                    if ((propertyDependency.Type & PropertyDependencyType.NeedForRead) != PropertyDependencyType.None && this.OccurrencePropertyBag.IsModifiedProperty(propertyDependency.Property))
                    {
                        return(true);
                    }
                }
                return(false);
            }
            return(this.OccurrencePropertyBag.IsModifiedProperty(propertyDefinition));
        }