2016-08-28 2 views
0

새 Node 개체를 만들고 컬렉션에 추가하려고합니다. 추가 영원히 걸리는처럼컬렉션에 개체를 추가하는 데 오랜 시간이 걸립니다.

Nodes.Add(n); 

디버거는 단지 거기에 앉아 :

문제는 코드 줄을 칠 때이다. 내가 떠나서 30 분 후에 돌아와 Break All을 누르면 여전히 노드가 추가됩니다.

모든 아이디어는 이유는 일이 될 것이다?

public BindingList<vmNode> Nodes; 


     private void Node_Added(BindingList<vmNode> nodes) 
    { 

     tvwNodes.SelectedNode.Expand(); 

     using (ENIEntities context = ENIEntities.ConnectToSqlServer(ENI.Data.Configuration.ConnectionString)) 
     { 
      foreach (vmNode n in nodes) 
      { 
       //Do Prefix and Suffix 
       //ENI.Node Node = new ENI.Node(Convert.ToInt32(tvwNodes.SelectedNode.Value)); 
       NodeType nt = null; 

       nt = context.NodeTypes.SingleOrDefault(no => no.NodeTypeID == n.NodeTypeID); 


       n.Name = (nt.Prefix ?? "") + " " + n.Name + " " + (nt.Suffix ?? ""); 
       Nodes.Add(n); 
       //StyleNode 
       StyleNode(GetAddedNode(tvwNodes.SelectedNode.Nodes, n.NodeID)); 
      } 

     } 

    } 

코드

 private void showAddNodeDialog(string strNodeType) 
    { 
     if (tvwNodes.SelectedNode != null) 
     { 

      Node Node = null; 

      using (ENIEntities context = ENIEntities.ConnectToSqlServer(ENI.Data.Configuration.ConnectionString)) 
      { 
       Node = context.Nodes.Find((Int32)tvwNodes.SelectedNode.Value); 
      } 

      frmNewNode frm = new frmNewNode(Node.NodeID, strNodeType); 
      frm.NodeAdded += Node_Added; 
      frm.ShowDialog(); 

      if (frm.copiedChildren) 
      { 
       LoadTree(); 
      } 

      loadControls(); 

      tvwNodes.SelectedNode = GetAddedNode(tvwNodes.Nodes, Node.NodeID); 
      tvwNodes.SelectedNode.Expand(); 
      tvwNodes.SelectedNode.EnsureVisible(); 

      frm.NodeAdded -= Node_Added; 
      frm.Dispose(); 

      //frmNewDocument frm = new frmNewDocument(Convert.ToInt32(tvwNodes.SelectedNode.Value), strDocumentType); 
      //frm.ShowDialog(); 
      //loadControls(); 
     } 
     else 
      MessageBox.Show("You Must Select a Node to Add to"); 
    } 
+0

는'이벤트 핸들러의 Node_Added' 어떤 종류인가? – Enigmativity

+0

예. 다른 양식이 노드를 작성하기 위해로드됩니다. 노드가 생성되면 – Muckeypuck

+1

이 호출됩니다.'Nodes.Add (n);'이 Node_Added를 호출하고 재귀 호출을 할 수 있습니까? – Enigmativity

답변

1

내가 Nodes.Add(n);Node_Added를 호출 끝 의심하고 재귀 호출을 호출. 당신의 의견을 바탕으로

이 일어난 것으로 보인다 무엇인지 참으로 의문을 제기.

관련 문제