protected override void AttachCore()
 {
     if (Proxy != null)
     {
         Proxy.Attach();
     }
     else
     {
         RenewProxy();
     }
 }
 public void RenewProxy()
 {
     if (Proxy != null)
     {
         Proxy.ValueChanged -= ProxyValueChanged;
         IDisposable disposable = Proxy as IDisposable;
         if (disposable != null)
         {
             disposable.Dispose();
         }
     }
     Proxy = CreateProxy();
     Proxy.Attach();
     Proxy.ValueChanged += ProxyValueChanged;
 }