public void DeselectAllChildren()
        {
            if ((Behaviour != null) && (Behaviour.BehaviourProperties != null))
            {
                Behaviour.BehaviourProperties.IsSelected = false;
            }

            if ((StateShapes != null) && (StateShapes.Shapes != null))
            {
                foreach (object o in StateShapes.Shapes)
                {
                    if (o is LfPolygonViewModel)
                    {
                        LfPolygonViewModel pvm = o as LfPolygonViewModel;

                        pvm.DeselectAllPoints();
                        pvm.IsSelected = false;
                    }
                    else if (o is LfShapeViewModel)
                    {
                        LfShapeViewModel shape = o as LfShapeViewModel;

                        shape.IsSelected = false;
                    }
                }
            }

            if (StateJoints != null)
            {
                foreach (object o in StateJoints.Joints)
                {
                    if (o is WeldJointViewModel)
                    {
                        WeldJointViewModel joint = (WeldJointViewModel)o;

                        joint.IsSelected = false;
                    }
                }
            }

            if (ChildObjectsWithStates != null)
            {
                foreach (ChildObjectViewModel child in ChildObjectsWithStates.Children)
                {
                    child.DeselectAllChildren();
                    child.IsSelected = false;
                }
            }
        }
        virtual public void DeselectAllChildren()
        {
            if ((ShapeCollection != null) && (ShapeCollection.Shapes != null))
            {
                foreach (object o in ShapeCollection.Shapes)
                {
                    if (o is LfPolygonViewModel)
                    {
                        LfPolygonViewModel pvm = o as LfPolygonViewModel;

                        pvm.DeselectAllPoints();
                        pvm.IsSelected = false;
                    }
                    else if (o is LfShapeViewModel)
                    {
                        LfShapeViewModel shape = o as LfShapeViewModel;

                        shape.IsSelected = false;
                    }
                }
            }
        }