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)); }