예제 #1
0
 bool ShouldAttachItem(T item)
 {
     if (InteractionHelper.GetEnableBehaviorsInDesignTime(AssociatedObject))
     {
         return(true);
     }
     if (!InteractionHelper.IsInDesignMode(AssociatedObject))
     {
         return(true);
     }
     return(!InteractionHelper.IsInDesignMode(item));
 }
예제 #2
0
        void ResolveSource(bool forceResolving, bool?useVisualTree = null)
        {
            if (ViewModelBase.IsInDesignMode &&
                !InteractionHelper.GetEnableBehaviorsInDesignTime(AssociatedObject)
                )
            {
                return;
            }
            if (!IsAttached)
            {
                return;
            }
            if (Source != null && !forceResolving)
            {
                return;
            }
            if (SourceObject != null)
            {
                Source = SourceObject;
                return;
            }
            bool useVisualTreeCore   = useVisualTree ?? false;
            var  sourceObjectBinding = GetBindingExp(this, SourceObjectProperty);

            if (sourceObjectBinding != null)
            {
                string elementName = null;
                if (sourceObjectBinding.ParentBinding != null)
                {
                    elementName = sourceObjectBinding.ParentBinding.ElementName;
                }
                if (!string.IsNullOrEmpty(elementName))
                {
                    Source = FindObject(AssociatedObject, elementName, useVisualTreeCore);
                }
                return;
            }
            var sourceNameBinding = GetBindingExp(this, SourceNameProperty);

            if (!string.IsNullOrEmpty(SourceName) || sourceNameBinding != null)
            {
                Source = FindObject(AssociatedObject, SourceName, useVisualTreeCore);
                return;
            }
            Source = AssociatedObject;
            return;
        }
예제 #3
0
        void ResolveSource(bool forceResolving, bool?useVisualTree = null)
        {
            if (ViewModelBase.IsInDesignMode &&
                !InteractionHelper.GetEnableBehaviorsInDesignTime(AssociatedObject)
                )
            {
                return;
            }
            if (!IsAttached)
            {
                return;
            }
            if (Source != null && !forceResolving)
            {
                return;
            }
            object source;

            if (ResolveSource(out source, AssociatedObject, useVisualTree))
            {
                Source = source;
            }
        }