Exemplo n.º 1
0
        private static void OnKeyTipChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            bool newHasValue = !string.IsNullOrEmpty((string)e.NewValue);
            bool oldHasValue = !string.IsNullOrEmpty((string)e.OldValue);

            if (newHasValue != oldHasValue)
            {
                RoutedEventHandler onLoadedChanged = (o, ev) =>
                {
                    if (newHasValue && d.IsLoaded())
                    {
                        Current.scopeToElementMap.AddItem(d);
                    }
                    else
                    {
                        Current.scopeToElementMap.RemoveItem(d);
                    }
                };

                if (newHasValue)
                {
                    Current.mTargets.Add(d);
                    d.AddLoadedHandler(onLoadedChanged, onLoadedChanged);
                }
                else
                {
                    Current.mTargets.Remove(d);
                    d.RemoveLoadedHandler(onLoadedChanged, onLoadedChanged);
                }
                onLoadedChanged(null, null);
            }
        }