Пример #1
0
        protected override void OnAttached()
        {
            base.OnAttached();
            DependencyObject associatedObject = base.AssociatedObject;
            Behavior         behavior         = associatedObject as Behavior;
            FrameworkElement frameworkElement = associatedObject as FrameworkElement;

            this.RegisterSourceChanged();
            if (behavior != null)
            {
                associatedObject = ((IAttachedObject)behavior).AssociatedObject;
                behavior.AssociatedObjectChanged += new EventHandler(this.OnBehaviorHostChanged);
            }
            else if (this.SourceObject != null || frameworkElement == null)
            {
                try
                {
                    this.OnSourceChanged(null, this.Source);
                }
                catch (InvalidOperationException invalidOperationException)
                {
                }
            }
            else
            {
                this.SourceNameResolver.NameScopeReferenceElement = frameworkElement;
            }
            if (string.Compare(this.GetEventName(), "Loaded", StringComparison.Ordinal) == 0 && frameworkElement != null && !Interaction.IsElementLoaded(frameworkElement))
            {
                this.RegisterLoaded(frameworkElement);
            }
        }