private async void CSharpPropertyChanged(object sender, PropertyChangedEventArgs e)
{
var pn = e.PropertyName;
var propertyAccessor = new PropertyAccessor(sender, pn, _Logger);
if (!propertyAccessor.IsGettable)
return;
var currentfather = _SessionCache.GetCached(sender) as JsGenericObject;
if (currentfather == null)
return;
var nv = propertyAccessor.Get();
var oldbridgedchild = currentfather.Attributes[pn];
if (Object.Equals(nv, oldbridgedchild.CValue))
return;
await RegisterAndDo(() => _JSObjectBuilder.UnsafelMap(nv), (child) => currentfather.ReRoot(pn, child) );
}