Пример #1
0
        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);
            });
        }
Пример #2
0
        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);
            });
        }