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");
}
는'이벤트 핸들러의 Node_Added' 어떤 종류인가? – Enigmativity
예. 다른 양식이 노드를 작성하기 위해로드됩니다. 노드가 생성되면 – Muckeypuck
이 호출됩니다.'Nodes.Add (n);'이 Node_Added를 호출하고 재귀 호출을 할 수 있습니까? – Enigmativity