protected virtual void NotifyChildPropertyChanged(string propertyName, object sender, PropertyChangedEventArgs e)
        {
            ChildPropertyChangedEventHandler handler = ChildPropertyChanged;

            if (handler != null)
            {
                handler(sender, new ChildPropertyChangedEventArgs(this, propertyName, sender, e));
            }
        }
示例#2
0
        protected virtual void NotifyChildPropertyChanged(string propertyName, object sender, PropertyChangedEventArgs e)
        {
            if (propertyName == PROPERTIES.CHILDREN)
            {
                InvalidateCompSubCachedCache();
            }

            else if (propertyName == PROPERTIES.PS)
            {
                string path = (e is ChildPropertyChangedEventArgs ? ((ChildPropertyChangedEventArgs)e).FullPath : e.PropertyName);
                if (path == ModelUtils.NameOfProperty((MyClass o) => o.P.X))
                {
                    InvalidateCompSubCachedCache();
                }
            }

            else if (propertyName == PROPERTIES.P)
            {
                string path = (e is ChildPropertyChangedEventArgs ? ((ChildPropertyChangedEventArgs)e).FullPath : e.PropertyName);
                if (path == ModelUtils.NameOfProperty((Point o) => o.X))
                {
                    InvalidateCompSubCachedCache();
                }
                else if (path == ModelUtils.NameOfProperty((Point o) => o.Y))
                {
                    InvalidateCompSubCachedCache();
                }
            }

            ChildPropertyChangedEventHandler handler = ChildPropertyChanged;

            if (handler != null)
            {
                handler(sender, new ChildPropertyChangedEventArgs(this, propertyName, sender, e));
            }

            if (propertyName == PROPERTIES.CHILDREN)
            {
                NotifyPropertyChanged(PROPERTIES.COMP_SUB);
                NotifyPropertyChanged(PROPERTIES.COMP_SUB_CACHED);
            }
            else if (propertyName == PROPERTIES.PS)
            {
                string path = (e is ChildPropertyChangedEventArgs ? ((ChildPropertyChangedEventArgs)e).FullPath : e.PropertyName);
                if (path == ModelUtils.NameOfProperty((MyClass o) => o.P))
                {
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB);
                }
                else if (path == ModelUtils.NameOfProperty((MyClass o) => o.P.X))
                {
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB_CACHED);
                }
            }
            else if (propertyName == PROPERTIES.P)
            {
                string path = (e is ChildPropertyChangedEventArgs ? ((ChildPropertyChangedEventArgs)e).FullPath : e.PropertyName);
                if (path == ModelUtils.NameOfProperty((Point o) => o.X))
                {
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB);
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB_CACHED);
                }
                else if (path == ModelUtils.NameOfProperty((Point o) => o.Y))
                {
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB);
                    NotifyPropertyChanged(PROPERTIES.COMP_SUB_CACHED);
                }
            }
        }