private void Load()
        {
            // Check if the classes and properties have ben loaded
            //while (!RequirementViewModelLocator.IsLoaded());

            using (EDBEntities eDB = new EDBEntities())
            {
                foreach (tblObjectRequirement Rec in (from o in eDB.tblObjectRequirements where (o.Project_ID == Globals.Project_ID) select o))
                {
                    ObjectRequirementModel objectRequirementItem = new ObjectRequirementModel
                    {
                        Project_ID        = Rec.Project_ID,
                        Object_ID         = Rec.Object_ID,
                        Requirement_ID    = Rec.Requirement_ID,
                        RequirementType   = Rec.RequirementType,
                        PreFATOk          = Rec.PreFATOk,
                        FATOk             = Rec.FATOk,
                        FATBy             = Rec.FATBy,
                        FATDate           = Rec.FATDate,
                        SATOk             = Rec.SATOk,
                        SATBy             = Rec.SATBy,
                        SATDate           = Rec.SATDate,
                        IsChanged         = false,
                        IsNew             = false,
                        IsDeleted         = false,
                        ChildRequirements = new TD.ObservableItemCollection <ObjectRequirementModel>()
                    };

                    var requirementItem = RequirementViewModelLocator.GetRequirementVM().GetRequirement(objectRequirementItem.Requirement_ID, null);

                    if (requirementItem != null)
                    {
                        objectRequirementItem.ArticleNo          = requirementItem.ArticleNo;
                        objectRequirementItem.ArticleHeader      = requirementItem.ArticleHeader;
                        objectRequirementItem.RequirementType_ID = requirementItem.RequirementType_ID;

                        foreach (var childItem in requirementItem.ChildRequirements)
                        {
                            ObjectRequirementModel item = new ObjectRequirementModel
                            {
                                Project_ID         = childItem.Project_ID,
                                Object_ID          = objectRequirementItem.Object_ID,
                                Requirement_ID     = childItem.ID,
                                ArticleNo          = childItem.ArticleNo,
                                ArticleHeader      = childItem.ArticleHeader,
                                RequirementType    = "Requirement",
                                RequirementType_ID = childItem.RequirementType_ID,
                                ChildRequirements  = new TD.ObservableItemCollection <ObjectRequirementModel>()
                            };
                            objectRequirementItem.ChildRequirements.Add(item);
                        }

                        ObjectRequirements.Add(objectRequirementItem);
                    }
                }
            }
        }
        public void AssociateWithObject(TreeListViewRow destination)
        {
            try
            {
                // Associate all selected objects
                foreach (var objectItem in ObjectViewModelLocator.GetObjectVM().SelectedItems)
                {
                    // With all selected requirements (m:n)
                    foreach (var requirementItem in RequirementViewModelLocator.GetRequirementVM().SelectedItems)
                    {
                        ObjectRequirementModel objectRequirementItem = new ObjectRequirementModel
                        {
                            IsNew              = true,
                            IsChanged          = false,
                            IsDeleted          = false,
                            Project_ID         = Globals.Project_ID,
                            Object_ID          = objectItem.ID,
                            Requirement_ID     = requirementItem.ID,
                            RequirementType_ID = requirementItem.RequirementType_ID,
                            ArticleNo          = requirementItem.ArticleNo,
                            ArticleHeader      = requirementItem.ArticleHeader,
                            //RequirementType = Globals.DraggedItem.Type,
                            ChildRequirements = new TD.ObservableItemCollection <ObjectRequirementModel>(),
                        };

                        foreach (var childItem in requirementItem.ChildRequirements)
                        {
                            ObjectRequirementModel objectRequirementChildItem = new ObjectRequirementModel
                            {
                                IsNew              = true,
                                IsChanged          = false,
                                IsDeleted          = false,
                                Project_ID         = Globals.Project_ID,
                                Object_ID          = objectRequirementItem.Object_ID,
                                Requirement_ID     = childItem.ID,
                                RequirementType_ID = childItem.RequirementType_ID,
                                //objectFunctionalityChildItem.FunctionParent_ID = childItem.Parent_ID;
                                ArticleNo         = childItem.ArticleNo,
                                ArticleHeader     = childItem.ArticleHeader,
                                ChildRequirements = new TD.ObservableItemCollection <ObjectRequirementModel>()
                            };
                            objectRequirementItem.ChildRequirements.Add(objectRequirementChildItem);
                        }
                        ;

                        ObjectRequirements.Add(objectRequirementItem);
                    }
                }
            }
            catch (Exception ex)
            {
                RadWindow.Alert(ex.Message);
            }
        }