【发布时间】:2017-03-11 13:05:33
【问题描述】:
您好,我正在尝试将子节点附加到父节点,具体取决于它们的字符串是否匹配。
我遇到了一些问题,因为我不确定如何仅通过名字来识别父母。例如,如果 "string a" == "string a" 那么我想将子节点 LoanName 添加到字符串与父名称匹配的父 id。
如果我这样做,这会起作用:
tvTodoList.Nodes[0].Nodes.Add(activityResult.ActivityName);
但显然这会将子节点附加到树视图中的第一个父节点。如何让它与变量loanresult.LoanName 的名称相匹配?
下面是我的 FillTodoList 方法的代码
private void FillTodoList()
{
var nol = NetworkOpsLayer.NetworkOpsLayer.CreateForDirectMongoConnection("mongodb://localhost", "test", "loans");
//demoSave(nol);
var loanList = nol.GetDocsWhichMatchGivenDocString("{ \"isActive\" : 1 }");
foreach (string s in loanList)
{
//System.Console.WriteLine(s);
var loanResult = JsonConvert.DeserializeObject<RootObject>(s);
tvTodoList.Nodes.Add("Loan Name: " + loanResult.LoanName);
//Add children to each Loan
var con = NetworkOpsLayer.NetworkOpsLayer.CreateForDirectMongoConnection("mongodb://localhost", "test", "activity");
//demoSave(con);
var activityList = con.GetDocsWhichMatchGivenDocString("{ \"isActive\" : 1 }");
foreach (string st in activityList)
{
var activityResult = JsonConvert.DeserializeObject<Activity>(st);
if (loanResult.LoanName == activityResult.ParentLoanName)
{
tvTodoList.Nodes[loanResult.LoanName].Nodes.Add(activityResult.ActivityName);
}
}
}
}
【问题讨论】:
-
不要发送随机标签或忽略重要标签。这与 node.js 或 WPF 无关。它确实与winforms有关。
-
如果可以的话,使用节点的
Name属性来分配字符串标识符。否则使用Tag属性添加附加信息。您可以使用其Name或其Tag来查找节点,如下所述:How to select a Node by Tag in Windows Forms TreeView -
@RezaAghaei 你是对的。虽然这并没有完全解决我的问题,但它确实帮助我找到了答案。我会将其标记为答案,并在下面评论我为获得解决方案而采取的额外步骤。