private static void RegisterPropertyChanged(BindableObject dependencyObject, object oldValue, object newValue) { var fe = dependencyObject as Element; if (fe == null) { return; } StartListenerIfNeeded(); var componentId = (string)newValue; if (!componentId.Equals(RuntimeUpdateHandler.CurrentlyUpdatedTargetId, StringComparison.OrdinalIgnoreCase)) { Device.BeginInvokeOnMainThread(() => { var initialPropertyList = RuntimeUpdateHandler.GetInitialPropertyList(componentId) ?? ""; RuntimeUpdateHandler.ClearElement(fe, componentId, initialPropertyList); LoadComponent(fe, componentId); }); } Device.BeginInvokeOnMainThread(() => { RuntimeUpdateHandler.Register(fe, componentId); }); }
private static void RegisterPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs eventArgs) { StartListenerIfNeeded(); var fe = dependencyObject as FrameworkElement; if (fe == null) { return; } var componentId = (string)eventArgs.NewValue; var alreadyRegistered = RuntimeUpdateHandler.IsRegistered(componentId); if (alreadyRegistered && !componentId.Equals(RuntimeUpdateHandler.CurrentlyUpdatedTargetId, StringComparison.InvariantCultureIgnoreCase)) { AfterInitialize(fe, f => { var initialPropertyList = RuntimeUpdateHandler.GetInitialPropertyList(componentId) ?? ""; RuntimeUpdateHandler.ClearElement(fe, componentId, initialPropertyList); LoadComponent(f, componentId); }); } AfterLoad(fe, f => { RuntimeUpdateHandler.Register(f, componentId); }); }