internal void OnGot(object sender, DependencyPropertyGotEventArgs e)
 {
     if (this.Got != null)
     {
         this.Got(sender, e);
     }
 }
        internal object GetValue(DependencyProperty dp, bool ignoreExpression)
        {
            var ctx = GetContext(dp.Id);

            var value = LoadPropertyValue(dp, ignoreExpression);

            if (!ctx.InCallBack)
            {
                //先进行对象内部回调方法
                if (dp.GotValueCallback != null)
                {
                    ctx.InCallBack = true;
                    dp.GotValueCallback(this, ref value);
                    ctx.InCallBack = false;
                }

                if (dp.IsRegisteredGot || this.PropertyGot != null)
                {
                    var e = new DependencyPropertyGotEventArgs(dp, value);
                    //再执行属性公共挂载的事件
                    if (dp.IsRegisteredGot)
                    {
                        ctx.InCallBack = true;
                        dp.OnGot(this, e);
                        ctx.InCallBack = false;

                        value = e.Value;
                    }

                    //最后执行对象级别挂载的事件
                    if (this.PropertyGot != null)
                    {
                        ctx.InCallBack = true;
                        this.PropertyGot(this, e);
                        ctx.InCallBack = false;

                        value = e.Value;
                    }
                }
            }
            return(value);
        }
 internal void OnGot(object sender, DependencyPropertyGotEventArgs e)
 {
     this.DefaultMetadata.OnGot(sender, e);
 }