Example #1
0
        internal void NewValueAvailable(bool dependencySourcesChanged, bool initialValue, bool isASubPropertyChange)
        {
            SetStatus(PW.Status);

            BindingExpression parent = ParentBindingExpression;

            // this method is called when the last item in the path is replaced.
            // BindingGroup also wants to know about this.
            BindingGroup bindingGroup = parent.BindingGroup;

            if (bindingGroup != null)
            {
                bindingGroup.UpdateTable(parent);
            }

            if (dependencySourcesChanged)
            {
                ReplaceDependencySources();
            }

            // if there's a revised value (i.e. not during initialization
            // and shutdown), transfer it.
            if (!initialValue && Status != BindingStatusInternal.AsyncRequestPending)
            {
                parent.ScheduleTransfer(isASubPropertyChange);
            }
        }
        internal void NewValueAvailable(bool dependencySourcesChanged, bool initialValue, bool isASubPropertyChange)
        {
            SetStatus(PW.Status);

            BindingExpression parent = ParentBindingExpression;

            // this method is called when the last item in the path is replaced.
            // BindingGroup also wants to know about this.
            BindingGroup bindingGroup = parent.BindingGroup;

            if (bindingGroup != null)
            {
                bindingGroup.UpdateTable(parent);
            }

            if (dependencySourcesChanged)
            {
                ReplaceDependencySources();
            }

            if (Status != BindingStatusInternal.AsyncRequestPending)
            {
                // if there's a revised value (i.e. not during initialization
                // and shutdown), transfer it.
                if (!initialValue)
                {
                    parent.ScheduleTransfer(isASubPropertyChange);
                }
                else
                {
                    // "initialValue" should really be called "suppressTransfer".
                    // It's true when we don't want to transfer the new value:
                    //  a) initial activation
                    //  b) shutdown
                    //  c) DataContext={DisconnectedItem}
                    // Even in these cases, at least clear the pending flag,
                    // so that future source changes aren't ignored
                    SetTransferIsPending(false);
                }
            }
        }
Example #3
0
        // Token: 0x0600747C RID: 29820 RVA: 0x002154F8 File Offset: 0x002136F8
        internal void NewValueAvailable(bool dependencySourcesChanged, bool initialValue, bool isASubPropertyChange)
        {
            this.SetStatus(this.PW.Status);
            BindingExpression parentBindingExpression = base.ParentBindingExpression;
            BindingGroup      bindingGroup            = parentBindingExpression.BindingGroup;

            if (bindingGroup != null)
            {
                bindingGroup.UpdateTable(parentBindingExpression);
            }
            if (dependencySourcesChanged)
            {
                this.ReplaceDependencySources();
            }
            if (base.Status != BindingStatusInternal.AsyncRequestPending)
            {
                if (!initialValue)
                {
                    parentBindingExpression.ScheduleTransfer(isASubPropertyChange);
                    return;
                }
                base.SetTransferIsPending(false);
            }
        }