Beispiel #1
0
        private RelationContener DrawInheritanceRelation(EntityTypeDesigner baseTypeDesigner, EntityTypeDesigner childTypeDesigner)
        {
            var relationContener = (from rc in Designer.Children.OfType <RelationContener>()
                                    let ir = rc.Content as InheritanceRelation
                                             where ir != null && ir.FromTypeDesigner == childTypeDesigner && ir.ToTypeDesigner == baseTypeDesigner
                                             select rc).FirstOrDefault();

            if (relationContener != null)
            {
                return(relationContener);
            }
            var inheritanceRelation = new InheritanceRelation(Designer, childTypeDesigner, baseTypeDesigner, () => Designer.Children.OfType <EntityTypeDesigner>().FirstOrDefault(etd => etd.EntityType.BusinessInstance == EntityType.BusinessInstance.BaseType));

            relationContener = new RelationContener(inheritanceRelation);
            Designer.Children.Add(relationContener);
            relationContener.SetBinding(Canvas.LeftProperty, new Binding {
                Source = inheritanceRelation, Path = new PropertyPath("CanvasLeft")
            });
            relationContener.SetBinding(Canvas.TopProperty, new Binding {
                Source = inheritanceRelation, Path = new PropertyPath("CanvasTop")
            });
            baseTypeDesigner.AddRelationContenerWithoutRelatedProperty(relationContener);
            childTypeDesigner.AddRelationContenerWithoutRelatedProperty(relationContener);
            return(relationContener);
        }
 private RelationContener DrawInheritanceRelation(EntityTypeDesigner baseTypeDesigner, EntityTypeDesigner childTypeDesigner)
 {
     var relationContener = (from rc in Designer.Children.OfType<RelationContener>()
                            let ir = rc.Content as InheritanceRelation
                            where ir != null && ir.FromTypeDesigner == childTypeDesigner && ir.ToTypeDesigner == baseTypeDesigner
                            select rc).FirstOrDefault();
     if (relationContener != null)
         return relationContener;
     var inheritanceRelation = new InheritanceRelation(Designer, childTypeDesigner, baseTypeDesigner, () => Designer.Children.OfType<EntityTypeDesigner>().FirstOrDefault(etd => etd.EntityType.BusinessInstance == EntityType.BusinessInstance.BaseType));
     relationContener = new RelationContener(inheritanceRelation);
     Designer.Children.Add(relationContener);
     relationContener.SetBinding(Canvas.LeftProperty, new Binding { Source = inheritanceRelation, Path = new PropertyPath("CanvasLeft") });
     relationContener.SetBinding(Canvas.TopProperty, new Binding { Source = inheritanceRelation, Path = new PropertyPath("CanvasTop") });
     baseTypeDesigner.AddRelationContenerWithoutRelatedProperty(relationContener);
     childTypeDesigner.AddRelationContenerWithoutRelatedProperty(relationContener);
     return relationContener;
 }
 public InheritanceRelation(DesignerCanvas canvas, EntityTypeDesigner fromTypeDesigner, EntityTypeDesigner toTypeDesigner, Func<EntityTypeDesigner> getToEntityTypeDesigner)
     :base(canvas, fromTypeDesigner, toTypeDesigner)
 {
     InitializeComponent();
     InitContextMenuCommandBindings();
     SetBinding(XYProperty, new Binding { Source = this, Converter = new InheritanceRelationToXYConverter() });
     fromTypeDesigner.EntityType.BaseTypeChanged +=
         () =>
         {
             ToTypeDesigner = getToEntityTypeDesigner();
             if (ToTypeDesigner != null)
             {
                 RedoXYBinding();
                 OnAssociationCoordonatesChanged();
                 RedoBindings();
             }
         };
 }