private void ShowOrHideMarkedAssociation(Element element, PowerDStatus status, bool show)
 {
     if (show)
     {
         elementControl.ShowOrHidePowerDElement(element, status, show);
         elementControl.SyncHeadingElement(element);
     }
     else
     {
         elementControl.ShowOrHidePowerDElement(element, status, show);
         //elementControl.SyncHeadingElement(element);
     }
 }
        public void ShowOrHidePowerDElement(Element parent, PowerDStatus status, bool show)
        {
            try
            {
                DatabaseControl temp_dbControl;
                List<Element> allElements = new List<Element>();

                if (parent.Path != root.Path)
                {
                    temp_dbControl = new DatabaseControl(parent.Path);
                    temp_dbControl.OpenConnection();
                    temp_dbControl.DO_NOT_UPDATE_POWERDREGION = true;
                    allElements = temp_dbControl.GetAllElementFromXML();

                }
                else
                {
                    temp_dbControl = dbControl;
                    temp_dbControl.DO_NOT_UPDATE_POWERDREGION = true;
                    allElements = temp_dbControl.GetAllElementFromXML();
                    temp_dbControl.DO_NOT_UPDATE_POWERDREGION = false;
                }

                for (int i = allElements.Count - 1; i >= 0; i--)
                {
                    if (allElements[i].PowerDStatus == status)
                    {
                        //allElements[i].ParentElement = parent;
                        if (show)
                        {
                            allElements[i].IsVisible = Visibility.Visible;
                        }
                        else
                        {
                            allElements[i].IsVisible = Visibility.Collapsed;
                            for (int j = parent.Elements.Count - 1; j >= 0 ; j--)
                            {
                                if (parent.Elements[j].ID == allElements[i].ID)
                                {
                                    parent.Elements.RemoveAt(j);
                                    break;
                                }
                            }
                        }
                        UpdateElement(allElements[i]);
                    }
                    else
                    {
                        continue;
                    }
                }
            }
            catch (Exception ex)
            {

            }
        }