internal void RefreshUnboundItemProperty(object component)
        {
            if (m_unboundItemPropertyCount > 0)
            {
                if (this.IsUnboundItemPropertyInRefresh(component))
                {
                    return;
                }

                if (this.IsUnboundItemPropertyChangedSuspended(component))
                {
                    return;
                }

                this.AddUnboundItemPropertyInRefresh(component);
                UnboundDataItem unboundDataItem;
                UnboundDataItem.GetUnboundDataItemNode(component, out unboundDataItem);

                try
                {
                    foreach (DataGridItemPropertyBase itemProperty in this)
                    {
                        DataGridUnboundItemProperty unboundItemProperty = itemProperty as DataGridUnboundItemProperty;

                        if (unboundItemProperty != null)
                        {
                            unboundItemProperty.Refresh(unboundDataItem);
                        }
                    }
                }
                finally
                {
                    this.RemoveUnboundItemPropertyInRefresh(component);
                }
            }
        }
 protected DataGridUnboundItemProperty(DataGridUnboundItemProperty template)
     : base(template)
 {
     this.QueryValue      += template.QueryValue;
     this.CommittingValue += template.CommittingValue;
 }