예제 #1
0
 protected override void ModifyValue(PropertyReference propertyReference, object valueToSet, SceneNode.Modification modification, int index)
 {
     if (modification == SceneNode.Modification.SetValue || modification == SceneNode.Modification.InsertValue)
     {
         ItemsControlElement.ClearMutuallyExclusivePropertyIfNeeded((SceneElement)this, propertyReference);
     }
     base.ModifyValue(propertyReference, valueToSet, modification, index);
 }
예제 #2
0
 protected override void OnChildAdded(SceneNode child)
 {
     if (PlatformTypes.ItemsControl.IsAssignableFrom((ITypeId)this.Type))
     {
         ItemsControlElement.OnChildAddedHelper((SceneElement)this, child);
     }
     base.OnChildAdded(child);
 }
예제 #3
0
 protected override void ModifyValue(PropertyReference propertyReference, object valueToSet, SceneNode.Modification modification, int index)
 {
     if (PlatformTypes.ItemsControl.IsAssignableFrom((ITypeId)this.Type) && (modification == SceneNode.Modification.SetValue || modification == SceneNode.Modification.InsertValue))
     {
         ItemsControlElement.ClearMutuallyExclusivePropertyIfNeeded((SceneElement)this, propertyReference);
     }
     base.ModifyValue(propertyReference, valueToSet, modification, index);
 }
예제 #4
0
        public static void OnChildAddedHelper(SceneElement itemsControl, SceneNode child)
        {
            IProperty propertyForChild = itemsControl.GetPropertyForChild(child);

            if (propertyForChild == null || !ItemsControlElement.ItemsProperty.Equals((object)propertyForChild))
            {
                return;
            }
            ItemsControlElement.UpdateItemsSourceOnItemsChanged(itemsControl);
        }
예제 #5
0
        public static void ClearMutuallyExclusivePropertyIfNeeded(SceneElement itemsControl, PropertyReference propertyReference)
        {
            ReferenceStep firstStep = propertyReference.FirstStep;

            if (ItemsControlElement.ItemsSourceProperty.Equals((object)firstStep))
            {
                ISceneNodeCollection <SceneNode> collectionForProperty = itemsControl.GetCollectionForProperty((IPropertyId)itemsControl.DefaultContentProperty);
                if (collectionForProperty != null)
                {
                    foreach (SceneNode sceneNode in (IEnumerable <SceneNode>)collectionForProperty)
                    {
                        SceneElement element = sceneNode as SceneElement;
                        if (element != null)
                        {
                            itemsControl.ViewModel.AnimationEditor.DeleteAllAnimationsInSubtree(element);
                        }
                    }
                    collectionForProperty.Clear();
                }
                itemsControl.ClearValue(ItemsControlElement.ItemsProperty);
            }
            else if (ItemsControlElement.ItemsProperty.Equals((object)firstStep))
            {
                ItemsControlElement.UpdateItemsSourceOnItemsChanged(itemsControl);
            }
            else if (ItemsControlElement.ItemTemplateProperty.Equals((object)firstStep))
            {
                itemsControl.ClearValue(ItemsControlElement.DisplayMemberPathProperty);
            }
            else
            {
                if (!ItemsControlElement.DisplayMemberPathProperty.Equals((object)firstStep))
                {
                    return;
                }
                itemsControl.ClearValue(ItemsControlElement.ItemTemplateProperty);
            }
        }
예제 #6
0
        protected override DocumentNode ResolveDefaultStyleAsDocumentNode(IType targetType, IPropertyId propertyKey)
        {
            IPropertyId containerStyleProperty = ItemsControlElement.GetItemContainerStyleProperty(this.ProjectContext, (ITypeId)targetType);

            return(containerStyleProperty == null || !containerStyleProperty.Equals((object)propertyKey) ? base.ResolveDefaultStyleAsDocumentNode(targetType, propertyKey) : base.ResolveDefaultStyleAsDocumentNode(this.ProjectContext.ResolveType((ITypeId)this.ItemType), BaseFrameworkElement.StyleProperty));
        }
예제 #7
0
 protected override void OnChildAdded(SceneNode child)
 {
     ItemsControlElement.OnChildAddedHelper((SceneElement)this, child);
     base.OnChildAdded(child);
 }